There are questions remain, We'll search for the answers together. But one thing we known for sure,the future is not set!

【原创文章】linux下查找包含关键字的所有文件

系统防护 百蔬君 710℃ 已收录 0评论

当前目录查找含有某关键字的文件,使用grep命令

grep -rn "baishujun!" *

* : 表示当前目录所有文件,也可以是某个文件名

-r 是递归查找

-n 是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写

如果只需要打印出文件名加一个“-l ”参数

grep -ri "baishujun!" -l

上面的命令是查找特定字符串的文件,但是在这个之前,我们可能需要的功能是在特定的文件中查找,这样可以加快效率,那么首先我们需要查找特定格式的文件,使用find命令

特定文件夹查找php文件

find /www/ -name '*.php'

全盘查找php文件

find ./ -name '*.php'

和grep命令结合起来,先查找特定格式的文件,然后在这些文件中筛选包含特定关键字的文件。

比如在/www目录下的php文件中查找包含“baishujun”的文件,由于find命令不支持|管道来传递参数,需要加一个xargs命令。

find /www/ -name '*.php'  | xargs grep -ri "baishujun" -l

很多情况下,linux系统有很多包含空格的文件夹,上面这个命令遇到这种文件夹就会出问题,我们需要进一步来处理这一种情况,find和xargs都有相应的参数来处理带空格的文件。

find参数需要加 -print0,对应的xargs加-0,完整命令如下

find /www/ -name '*.php' -print0 | xargs -0 grep -ri "baishujun" -l

这样就是一条比较安全的在特定文件中查找包含关键字的命令了,并且只打印出文件名。

find /www/ -name '*' -print0 | xargs -0 grep -ri "baishujun" -l :在/www目录中查找包含”baishujun“的文件。

find ./ -name '*' -print0 | xargs -0 grep -ri "baishujun" -l :全盘查找所有包含”baishujun“的文件。

 

 

 

转载请注明:百蔬君 » 【原创文章】linux下查找包含关键字的所有文件

喜欢 (0)or分享 (0)
发表我的评论
取消评论

请证明您不是机器人(^v^):

表情