关于终端:Unix命令查找所有文件

Unix command to find all files

我需要一个unix命令列出所有名称中包含"foo"的文件?我们有两个这样做的命令:grep命令和find命令!!最好的是什么?

谢谢


find命令本身就足够了(除非您希望在名为"foo"的目录中包含文件):

1
find / -type f -name '*foo*'

检查路径名的叶名称(最后一部分)。如果您以类似方式将find的结果通过grep进行管道传输:

1
find / -type f | grep foo

它将匹配这些文件,以及名称包含"foo"的目录中的所有文件(和目录)。

为了更有趣地过滤列表,可以使用支持正则表达式和其他特性的grep。例如,您可以

1
find / -type f | grep -i foo

匹配"foo"忽略大小写。

但是,如果您想查看文件的内容,这是grep特有的:

1
find / -type f -exec grep foo {} +

进一步阅读:

  • 找到
  • 格雷普


使用"查找"列出系统上的所有文件。

将其与grep配对以搜索特定的文件名。

这样地:

1
find / -type f -exec grep -i -r"*foo*" {}