Unix命令查找所有文件

Unix command to find all files

我需要一个 unix 命令来列出名称中包含 'foo' 的所有文件? 我们有两个命令可以做到这一点:grep 命令和 find 命令! 什么最好?

谢谢

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

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

像这样:

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

find 命令本身就足够了(除非你想在名称包含 "foo" 的目录中包含文件):

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

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

find / -type f | grep foo

它将匹配这些文件,以及名称包含 "foo".

的目录中的所有文件(和目录)

要以更有趣的方式过滤列表,您可以使用 grep,它支持正则表达式和其他功能。例如,你可以做

find / -type f | grep -i foo

匹配 "foo" 忽略大小写。

但是如果你想查看文件的内容,那是特定于 grep 的:

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

延伸阅读: