使用grep命令。
grep -rnw '/path/to/somewhere/' -e 'pattern'
-r
or-R
表示递归查找-n
显示查找到字符串所在文件行号-w
表示完整匹配-l
(lower-case L) 只显示匹配的文件名
也可以添加下面这些参数, --exclude
, --include
, --exclude-dir
来提高检索效率
- 下面这个例子只会检索文件扩展名为 .c or .h 的文件:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
- 下面这个例子将忽略检索所有文件扩展名为 .o 的文件:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
- 对于目录,可以使用–exclude-dir参数排除一个或多个目录。例如,这将排除目录 dir1/、dir2/以及所有与*.dst匹配的dir/
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
更多的选项,参考 man grep
参考资料:https://stackoverflow.com/questions/16956810/how-do-i-find-all-files-containing-specific-text-on-linux