Hoe kan ik bepaalde bestandsnamen negeren met "find"?
Een van mijn favoriete BASH commando’s is:
find . -name '*.*' -exec grep 'SearchString' {} /dev/null \;
die de inhoud van alle bestanden in en onder de huidige directory doorzoekt op de opgegeven SearchString. Als ontwikkelaar is dit wel eens handig geweest.
Vanwege mijn huidige project, en de structuur van mijn codebase, zou ik dit BASH commando echter nog geavanceerder willen maken door geen bestanden te doorzoeken die in of onder een directory staan die “.svn” bevat, of bestanden die eindigen op “.html”
De MAN pagina voor find bracht me echter in verwarring. Ik probeerde -prune te gebruiken, en het gaf me vreemd gedrag. In een poging om alleen de .html pagina’s over te slaan (om te beginnen), probeerde ik :
find . -wholename './*.html' -prune -exec grep 'SearchString' {} /dev/null \;
en kreeg niet het gedrag waar ik op hoopte. Ik denk dat ik de bedoeling van -prune mis. Kunnen jullie me helpen?
Bedankt