当前目录查找含有某关键字的文件,使用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下查找包含关键字的所有文件