web-dev-qa-db-fra.com

Recherche-commande pour certains sous-répertoires

Disons que j'ai un répertoire dir avec trois sous-répertoires dir1 .. dir3. Et à l'intérieur, j'ai de nombreux fichiers et autres sous-répertoires.

J'aimerais rechercher un fichier à l'intérieur, disons avec un *.c Terminer, mais je voudrais seulement rechercher dans le sous-répertoire "dir/dir2" et tous ses sous-répertoires. Comment puis-je formuler ça?

En supposant que je suis dans dir/ J'ai:

find . -name "*.c"

chercher dans tous les répertoires.

Comment puis-je limiter uniquement dir2?

18
scrrr

Trouver acceptera tout chemin valide afin

find ./dir2 -name '*.c'

devrait faire le tour

Si le répertoire dir est /home/user/dir vous pouvez donner la voie complète

find /home/user/dir/dir2 -name '*.c'
12
user591

Tu peux faire find dir2 -name '*.c'

Vous pourriez aussi faire (cd dir2; find -name '*.c')

Si vous vouliez regarder Dir1 et Dir3 mais pas Dir2, vous pourriez faire find {dir1,dir3} -name '*.c'

5
Shawn J. Goff

En supposant que vous êtes dans dir

find dir2 -name '*.c'

bien sûr IAINréponse est également correct

4
xenoterracide