Jak zignorować pewne nazwy plików używając "find"?
Jedną z moich ulubionych komend BASH jest:
find . -name '*.*' -exec grep 'SearchString' {} /dev/null \;
, które przeszukuje zawartość wszystkich plików w bieżącym katalogu i pod nim dla podanego SearchString. Jako programista, przydało się to nieraz.
Ze względu na mój obecny projekt i strukturę mojej bazy kodów, chciałbym jednak uczynić to polecenie BASH jeszcze bardziej zaawansowanym, nie przeszukując żadnych plików, które są w lub pod katalogiem, który zawiera “.svn”, ani żadnych plików, które kończą się na “.html”
Strona MAN dla find trochę mnie zmyliła. Próbowałem użyć -prune, i to dało mi dziwne zachowanie. W próbie pominięcia tylko stron .html (na początek), próbowałem :
find . -wholename './*.html' -prune -exec grep 'SearchString' {} /dev/null \;
i nie uzyskałem zachowania, na które liczyłem. Wydaje mi się, że być może brakuje mi sensu działania opcji -prune. Czy moglibyście mi pomóc?
Dzięki