J'ai un problème à vous soumettre:
Je voudrais créer une liste des répertoires et des fichiers de mon disque à partir d'un certain point de l'arborescence. Pour celà j'utilise la commande "find *" , comme je ne voulais pas de certains répertoire, jusqu'à présent je faisait un "|grep -v <toto>" pour les éliminer de la liste. Je me suis apperçu que le find perdait énormément de temps à faire la liste des répertoires dont je ne voulais pas. Y a-t-il une option de la commande find qui me permettrais de lui interdire de faire la liste de ce qui se trouve dans les répertoires dont je ne veux pas?
Merci d'avance.
Publicité
Posté le 24-09-2003 à 17:37:57
alligator421
Posté le 24-09-2003 à 17:51:51
man find ...
Code :
-path pattern
File name matches shell pattern pattern. The metacharacters do
not treat `/' or `.' specially; so, for example,
find . -path './sr*sc'
will print an entry for a directory called './src/misc' (if one
exists). To ignore a whole directory tree, use -prune rather
than checking every file in the tree. For example, to skip the
directory `src/emacs' and all files and directories under it,
and print the names of the other files found, do something like
this:
find . -path './src/emacs' -prune -o -print
Ca doit etre cela que tu cherches ?
bul_dozer
tout est relatif
Posté le 24-09-2003 à 18:12:29
bien vu, merci.
En fait, ma version de find sous unix n'a pas cette option (c'est pour ça que je suis passé à travers), par contre c'est bon sous linux, je vais donc l'utiliser ainsi.
Merci
Message édité par bul_dozer le 24-09-2003 à 18:14:43
bul_dozer
tout est relatif
Posté le 24-09-2003 à 18:32:46
Pour ceux que ça pourrait interresser, pour exclure plusieurs noms de la recherche j'ai fait: