Мне часто нужно искать определенную строку в каталоге с каталогом git .git/
. Это команда, которую я использую:
find . -name .git -prune -o -print | xargs grep <string-to-search>
Опция -name .git -prune -o -print
— игнорировать файлы под .git/
. Однако он выводит много сообщений "Is a directory", которые загромождают весь результат. Например,
...
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
git-grep
? - person Johnsyweb   schedule 01.01.2013find . -type f -name .git -prune -o -print
. - person Johnsyweb   schedule 01.01.2013find . -type f -name .git -prune -o -print
на самом деле все еще выводит каталоги. - person moey   schedule 01.01.2013git-grep
:git grep --untracked <string-to-search>
. Позвольте мне оставить этот вопрос открытым; Мне все еще любопытно, как бы мы это сделали, используя комбинацию grep и find. - person moey   schedule 01.01.2013git-grep
(или какой-то другой инструмент) справиться с этим? - person OLL   schedule 21.03.2017