Как игнорировать определенные имена файлов с помощью "найти"?
Одна из моих любимых команд BASH:
find . -name '*.*' -exec grep 'SearchString' {} /dev/null \;
, которая ищет содержимое всех файлов в текущем каталоге и ниже указанного SearchString. Как разработчик, это иногда пригодилось.
Однако, благодаря моему текущему проекту и структуре моей кодовой базы, я хотел бы сделать эту команду BASH еще более продвинутой, не осуществляя поиск любых файлов, которые находятся в каталоге, содержащем “.svn” или ниже, или любых файлов, которые заканчиваются на “.html”
Страница MAN для поиска сбивает меня с толку, хотя и смущает. Я попробовал использовать -prune, и это дало мне странное поведение. Пытаясь пропустить только .html страницы (для начала), я попытался :
find . -wholename './*.html' -prune -exec grep 'SearchString' {} /dev/null \;
и не получил того поведения, на которое надеялся. Я думаю, что, возможно, я упускаю суть -prune. Ребята, не могли бы вы мне помочь?
Спасибо.