![使用 grep 搜索字符串时如何避免使用 .git](https://linux22.com/image/1428790/%E4%BD%BF%E7%94%A8%20grep%20%E6%90%9C%E7%B4%A2%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%97%B6%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E4%BD%BF%E7%94%A8%20.git.png)
我正在尝试使用 grep 在文件夹中搜索字符串。
grep -r "word" .
但它包含了我想避免的 .git 文件中的搜索。
谢谢
答案1
如果您想排除.git
目录:
grep --exclude-dir=".git" -r "word" .
这在 GNU 上运行grep
,而不在其他版本上运行,但由于您似乎正在使用 Linux,所以这应该没问题。
答案2
尝试“确认”(http://beyondgrep.com/),它会自行忽略 .git、.hg、.csv 等:
默认搜索整个树,同时忽略 Subversion、Git 和其他 VCS 目录以及其他不是源代码的文件。
答案3
grep
如果您不支持排除目录,这是一个更灵活的解决方案:
查找 . -type d -path */.git -prune -o -type f -print0 | xargs -0 -e grep word