我经常需要从具有 git directory 的目录中搜索特定字符串.git/
。这是我使用的命令:
find . -name .git -prune -o -print | xargs grep <string-to-search>
选项-name .git -prune -o -print
是忽略. .git/
但是,它会输出很多“是目录”消息,这些消息会使整个结果变得混乱。例如,
...
grep: ./reports: Is a directory
grep: ./scripts: Is a directory
grep: ./scripts/js: Is a directory
grep: ./scripts/js/adapter: Is a directory
...
如何修改命令行以便我可以忽略.git/
目录和所有其他目录(即只搜索可搜索的文件)。
显然,该-type f
选项在以下情况下效果不佳:
find -type f . -name .git -prune -o -print