web-dev-qa-db-fra.com

linux comment trouver des fichiers spécifiques dans des dossiers spécifiques

Voici ma structure de dossiers:

/site1/myFolder/otherFolder1/a.gif

/site1/myFolder/otherFolder1/b.png

/site1/myFolder/otherFolder1/c.php

...

/site2/myFolder/otherFolder2/d.gif

/site2/myFolder/otherFolder2/e.png

/site2/myFolder/otherFolder2/f.php

...

/site3/myFolder/otherFolder3/g.gif

/site3/myFolder/otherFolder3/h.png

/site3/myFolder/otherFolder3/i.php

...

Je suis arrivé jusqu'ici:

find /var/www/html -type d -name myFolder -exec find {} -name "*.php"  \;

for i in `find /var/www/html -type d -name myFolder -exec find {} -name "*.php"  \;`
  do
    some_house_keeping_here
  done

Mais je veux faire quelque chose comme ça:

find /var/www/html -type d -name myFolder -exec find {} -name "*.php" -exec do_some_Housekeeping {} \; \;
24
user1880957

Vous pouvez utiliser le -path option au lieu de -name. Il correspondrait à l'intégralité du chemin absolu avec l'expression régulière.

find /var/www/html -path "*/myFolder/*.php" -exec do_some_Housekeeping {} \;
37
Hari Menon

Il y a un -path drapeau qui aiderait probablement beaucoup.

find /var/www/html -path "myFolder/otherFolder?" -name "*.php" -exec do_some_Housekeeping {} \;
3
Nicu Stiurca