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


当前回答

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

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

其他回答

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

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

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

查找。/-名称“pattern”

用于文件搜索

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

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

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

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

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

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

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

find -L . -name "foo*"

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