[UNIX] question de find

question de find [UNIX] - Divers - Linux et OS Alternatifs

Marsh Posté le 24-09-2003 à 17:37:57    

Salut à tous,
 
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.

Reply

Marsh Posté le 24-09-2003 à 17:37:57   

Reply

Marsh Posté le 24-09-2003 à 17:51:51    

man find ...

Code :
  1. -path pattern
  2.               File name matches shell pattern pattern.  The metacharacters  do
  3.               not treat `/' or `.' specially; so, for example,
  4.                         find . -path './sr*sc'
  5.               will  print an entry for a directory called './src/misc' (if one
  6.               exists).  To ignore a whole directory tree,  use  -prune  rather
  7.               than  checking every file in the tree.  For example, to skip the
  8.               directory `src/emacs' and all files and  directories  under  it,
  9.               and  print the names of the other files found, do something like
  10.               this:
  11.                         find . -path './src/emacs' -prune -o -print


Ca doit etre cela que tu cherches ?

Reply

Marsh 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
Reply

Marsh Posté le 24-09-2003 à 18:32:46    

Pour ceux que ça pourrait interresser, pour exclure plusieurs noms de la recherche j'ai fait:
 
find . -path '*<nom1>*' -or -path '*<nom2>*' -prune -o -print

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed