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


当前回答

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

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

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

其他回答

用于文件搜索

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

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

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

你也可以使用ripgrep。

例子:

搜索所有包含子字符串psql的文件名,

rg --files | rg psql

fd

如果查找速度太慢,请尝试fd实用程序,这是一个简单而快速的替代方法,可以在Rust中查找。

语法:

fd PATTERN

演示:

主页:https://github.com/sharkdp/fd

find -L . -name "foo*"

在少数情况下,我需要-L参数来处理符号目录链接。默认情况下,忽略符号链接。在这些情况下,这非常令人困惑,因为我会将目录更改为子目录,并看到与模式匹配的文件,但find不会返回文件名。使用-L解决了这个问题。查找的符号链接选项为-P-L-H

以下命令将列出当前及其子文件夹中具有确切名称“pattern”(例如)的所有文件。

查找。/-名称“pattern”