在 Linux 下通过 find 和 grep 查找包含指定字符串的文件
直接上示例,拿走即用
1 | $ find /home -type f -name '*.py' -exec grep -n 'MySQL' --color=auto {} \; -print |
作用是在’/home’目录下查找包含’MySQL’以’py’结尾的文件,输出内容和行号,将结果打印在屏幕
注意点:
- 可以根据要查找的字符串或文件类型修改单引号里面的内容
- 最好不要使用根目录,尽量缩小 Path 范围
拆分讲解
1 | $ find /home -type f # 类型参数, f 为普通文件 |
1 | $ find /home -name '*.py' # 根据文件名查找,查找 Python 文件 |
结合 -exec 与其他命令配合使用, find 在返回后执行
1 | $ find /home -name '*.py' -exec grep -n 'MySQL' {} \; # 查找 Python 文件,搜索包含'MySQL'的行 |
1 | $ find /home -name '*.py' -exec grep -n 'MySQL' --color=auto {} \; -print # 查找 Python 文件,搜索包含'MySQL'的行,将文件打印出来 |
其他用法可以分别查看 find 和 grep 的用法。