142 votes

Exclure un sous-répertoire à l'aide de find

La structure de mon répertoire est la suivante

data
|___
   |
   abc
    |____incoming
   def
    |____incoming
    |____processed
   123
    |___incoming
   456
    |___incoming
    |___processed

Il y a un sous-dossier entrant dans tous les dossiers du répertoire Data. Je veux récupérer tous les fichiers de tous les dossiers et sous-dossiers sauf les dossiers def/incoming et 456/incoming. J'ai essayé avec la commande suivante

 find /home/feeds/data -type d \( -name 'def/incoming' -o -name '456/incoming' -o -name arkona \) -prune -o -name '*.*' -print

mais cela ne fonctionne pas comme prévu.

Ravi

0voto

kedar Points 41

C'est ce que j'ai fait pour exclure toutes les .git et l'a passé à -exec pour rechercher quelque chose dans le

find . -not -path '*/\.*' -type f -exec grep "pattern" [] \;
  • -not -path '*/\.*' exclura tous les répertoires cachés
  • -type f ne listera que le type de fichier et vous pourrez alors passer cela à -exec ou ce que vous voulez faire

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X