Je suis sous Linux (Ubuntu) et je souhaite exclure certains répertoires (comme .hg) lorsque je fais un
find | less
J'ai essayé ce qui suit pour exclure le répertoire .hg de la liste, mais cela ne semble pas fonctionner.
find -type d ( ! -iname .hg )
find -type d ( ! -name .hg )
find -type d ( ! -iname .hg )
Comment puis-je exclure .directory dans une commande de recherche
Réponse acceptée :
Sur la recherche d'une find similaire solution J'ai découvert l'explication utile sur Comment utiliser l'option '-prune' de 'trouver' dans sh? par Laurence Gonsalves.
Vous pouvez utiliser quelque chose comme :
find . ( -type d -name .hg -prune ) -o ( -type f -name "foo" -print )
ou (sans le nom)
find . ( -type d -name .hg -prune ) -o ( -type f -print )
Les parenthèses (échappées) ( et ) regrouper les tests (type et name ) et les actions correspondantes (prune et print , respectivement) ensemble à gauche et à droite du OU (-o ).
Depuis -o a une priorité inférieure à la juxtaposition, vous pouvez omettre les parenthèses si vous le souhaitez. Beaucoup find les implémentations vous permettent également de sauter le dernier -print .
find . -type d -name .hg -prune -o -type f -name "foo" -print