grep -r "texthere" .
第一个参数表示要搜索的正则表达式,而第二个参数表示应搜索的目录。在这种情况下, .
表示当前目录。
注意:这适用于 GNU grep,在某些平台(如 Solaris)上,您必须专门使用 GNU grep 而不是遗留实现。对于 Solaris,这是ggrep
命令。
如果你知道你想要的文件的扩展名或模式,另一种方法是使用--include
选项:
grep -r --include "*.txt" texthere .
您还可以提及要使用--exclude
排除的文件。
如果你经常搜索代码, Ag(The Silver Searcher)是一个比 grep 更快的替代品,它是为搜索代码而定制的。例如,默认情况下它是递归的,并自动忽略.gitignore
列出的文件和目录,因此您不必继续将相同的繁琐排除选项传递给 grep 或 find。
也:
find ./ -type f -print0 | xargs -0 grep "foo"
但grep -r
是一个更好的答案。