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


当前回答

你也可以使用ripgrep。

例子:

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

rg --files | rg psql

其他回答

fd

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

语法:

fd PATTERN

演示:

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

我很惊讶地发现,当我们递归地执行时,locate并没有被大量使用。

我将首先定位“$PWD”以获取当前感兴趣文件夹中的文件列表,然后根据需要对它们运行grep。

locate "$PWD" | grep -P <pattern>

当然,这是假设updatedb已完成,索引定期更新。这是一种查找文件的方式,比运行查找并要求它从树上下来快得多。提及这一点是为了完整。如果这棵树不是很重,就不反对使用find。

你也可以使用ripgrep。

例子:

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

rg --files | rg psql

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

find . -name "*foo"

但是,如果您需要图片:

tree -P "*foo"

以下命令有助于搜索任何文件

无论情况如何未经许可排除文件夹的结果从根目录或您喜欢的路径搜索。更改/使用您喜欢的路径。

语法:

find <FromDirectory> -iname '<FileName wild char allowed>'   2>&1 | grep -v "Permission denied"

实例

find / -iname 'C*.xml' 2>&1 | grep -v "Permission denied"