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