我需要一个unix命令来列出名字中包含'foo'的所有文件? 我们有两个命令可以做到这一点:grep命令和find命令!! 什么是最好的?
由于
答案 0 :(得分:1)
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 {} +
进一步阅读:
答案 1 :(得分:0)
使用find列出系统上的所有文件。
将其与grep配对以搜索特定文件名。
像这样:find / -type f -exec grep -i -r "*foo*" {}