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


当前回答

Use

find <directory_path>  -type f -name "<wildcard-match>"

在通配符匹配中,您可以提供希望匹配的字符串,例如*.c(对于所有c文件)。

其他回答

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

查找。/-名称“pattern”

用于文件搜索

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

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

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

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

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

语法:

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

实例

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

你也可以使用ripgrep。

例子:

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

rg --files | rg psql

通过管道找到grep通常更方便;它为您提供了用于任意通配符匹配的正则表达式的全部功能。

例如,要查找文件名中不区分大小写字符串“foo”的所有文件:

find . -print | grep -i foo