linux之查找包含指定内容(字符串)的文件

linux之查找包含指定内容(字符串)的文件 

文件内容包含指定字符串

find . | xargs grep string

 

查找当前目录下文件内容包含字符串string的文件
为什么要这样写,因为管道命令符是把上一部的结果传递给下一步来处理,在 find . | grep string中虽然看似和find . | xargs grep string差不多,但是实际上还是有区别的。应为find .得到的结果是一串文件名集合,如果直接传递给grep的话,grep会把这些文件名看作一些无意义的字符串来处理。但是传递给xargs,他会把他当作一个有意义的文件来处理。


文件包含指定字符串

find . -name 'string'

 

查找当前目录下文件名包含字符串string的文件
如果要查找文件名中不包含字符串string的文件,可以使用!(取非,也就是取反)。
find . ! -name 'string'

 

组合使用在指定目录下查找包含某个字符串的文件名为某个的内容

find /tmp/ -name test.txt | xargs grep "hello"

可以查找到tmp目录下文件名test.txt并包含字符串hello的文件

 

路径下逐一查找文件名的字符串资源

find 路径 -type f  -name "文件名" | xargs grep “搜索的字符串”

find /root/shell/ -type f -name '*'|xargs grep "daxin"

 

每个目录都查找,可以查找到tmp目录下文件名test.txt并包含字符串hello的文件

find rt -type f | xargs grep -il root

find rt -type f 是逐一查找每个文件,在各层目录中。

因为这里grep命令使用了参数 -l,表示查询文件中包含root字符串的文件名。
查找字符串的对象的是文件里的内容,而不是文件名本身。使用xargs使得find查找出的文件名作为grep的参数,而不能作为标准输入。
如果不用xargs,则查找的是文件名中包含root字符串的项。

 

 

 

 
posted @ 2022-03-22 22:10  陈晓猛  阅读(9344)  评论(0编辑  收藏  举报