OVH Cloud OVH Cloud

Utilisation de la commande find

4 réponses
Avatar
pascal
Bonsoir,

Comment utiliser la commande find pour chercher un fichier nommé
mon_fichier dans tous les répertoires du répertoire courant sauf le
répertoire /toto ? Merci,

Pascal

4 réponses

Avatar
l'indien
On Sun, 27 Feb 2005 23:13:29 +0100, pascal wrote:

Bonsoir,

Comment utiliser la commande find pour chercher un fichier nommé
mon_fichier dans tous les répertoires du répertoire courant sauf le
répertoire /toto ? Merci,


man find devrait tout à fait convenir...
Tout y est...

find . -wholename toto -prune -o (-type f -a -name <xxx>)
(pas testé, mais devrait marcher)

Avatar
pascal
On Sun, 27 Feb 2005 23:13:29 +0100, pascal wrote:


Bonsoir,

Comment utiliser la commande find pour chercher un fichier nommé
mon_fichier dans tous les répertoires du répertoire courant sauf le
répertoire /toto ? Merci,



man find devrait tout à fait convenir...
Tout y est...
find . -wholename toto -prune -o (-type f -a -name <xxx>)
(pas testé, mais devrait marcher)



Merci, je vais essayer de comprendre et tester.

Pascal


Avatar
Johann Heymes
Salut,

On Sun, 27 Feb 2005 23:48:11 +0100
l'indien wrote:

find . -wholename toto -prune -o (-type f -a -name <xxx>)


J'ai pas trouvé l'option wholename c'était pourquoi ?

Je suis arrivé à ça perso :
find . -type f -iname "*mon_fichier" -print -o ( -name "toto" -type d -pru ne )

A+,

Johann.

Avatar
l'indien
On Mon, 28 Feb 2005 14:04:29 +0100, Johann Heymes wrote:

Salut,

On Sun, 27 Feb 2005 23:48:11 +0100
l'indien wrote:

find . -wholename toto -prune -o (-type f -a -name <xxx>)


J'ai pas trouvé l'option wholename c'était pourquoi ?


" -wholename pattern
File name matches shell pattern pattern."
Ca aurait donc du être -wholename /toto -prune
(j'ai oublié le '/' au début).
Une option équivalente (mais censé être obsolète, apparement) est -path


Je suis arrivé à ça perso :
find . -type f -iname "*mon_fichier" -print -o ( -name "toto" -type d -prune )


Pourquoi iname ?
C'est étrange de tester en "case-insensitive" si tu connais le nom du
ficher.
Ton test marche aussi mais est beaucoup plus couteux: il descend dans le
répertoire /toto et, pour chaque fichier trouvé, s'apperçoit que
c'était inutile de le traiter.
Alors que dans mon example, il ne descend pas du tout dans le répertoire
/toto.