Linux 用给定的字符串递归地查找文件名

我使用的是 Ubuntu,我想找到所有名称中包含字符串“ John”的工作目录和子目录中的文件。我知道 grep可以匹配文件的内容,但我不知道如何使用它与文件名。

156385 次浏览

使用 找到命令,

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

用法很简单。 输入 ack <string to be searched>

find命令将花费很长时间,因为它扫描文件系统中的真实文件。

最快的方法是使用 locate命令,它会立即给出结果:

locate "John"

如果找不到该命令,则需要安装 mlocate包并首先运行 updatedb命令来准备第一次搜索数据库。

更多细节请点击: https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab

这是一个非常简单的解决方案,可以使用要搜索的目录中的 tree命令。-f显示完整的文件路径,|用于将树的输出通过管道传递给 grep,以查找名称中包含字符串 filename的文件。

tree -f | grep filename