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字符串的项。
声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/
如出现转载未声明 将追究法律责任~谢谢合作