使用grep命令。
grep -rnw '/path/to/somewhere/' -e 'pattern'
-ror-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