如何基于通配符匹配递归查找当前和子文件夹中的所有文件?


当前回答

find将查找与模式匹配的所有文件:

find . -name "*foo"

但是,如果您需要图片:

tree -P "*foo"

其他回答

这将搜索当前目录和子目录中的所有相关文件,分别计算它们的行数以及总数:

find . -name "*.wanted" | xargs wc -l

用于文件搜索

查找/-xdev-name settings.xml→ 整个计算机查找。/-xdev-名称设置.xml→ 当前目录及其子目录

对于具有扩展名类型的文件:

find . -type f -name "*.iso"

find将查找与模式匹配的所有文件:

find . -name "*foo"

但是,如果您需要图片:

tree -P "*foo"

Use

find path/to/dir -name "*.ext1" -o -name "*.ext2"

解释

第一个参数是要搜索的目录。默认情况下,find执行递归。-o代表-或。所以上面的意思是搜索这个通配符或这个。如果您只有一个模式,那么不需要-o。通配符模式周围的引号是必填的。

对于Python>3.5,使用glob。指向当前文件夹并查找.txt文件:

 python -c "import glob;[print(x) for x in glob.glob('./**/*txt', recursive=True)]"

对于较旧版本的Python,可以安装glob2