120

我在 Ubuntu 上,我想在当前目录和子目录中查找名称包含字符串“John”的所有文件。我知道grep可以匹配文件的内容,但我不知道如何将它与文件名一起使用。

4

4 回答 4

214

使用查找命令,

find . -type f -name "*John*"
于 2012-10-29T23:19:39.787 回答
3

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

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

locate "John"

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

更多详细信息:https ://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab

于 2016-05-18T03:50:33.227 回答
2

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

tree -f | grep filename
于 2016-11-24T14:25:00.300 回答
1

使用 ack 很简单。只需键入ack <string to be searched>

于 2014-09-12T04:03:56.020 回答