O Find aceita qualquer caminho válido, por isso
find ./dir2 -name '*.c'
deve fazer o truque
Se o diretório dir
for /home/user/dir
, você poderá encontrar o caminho completo
find /home/user/dir/dir2 -name '*.c'
Digamos que eu tenha um diretório dir
com três subdiretórios dir1
.. dir3
. E por dentro eu tenho muitos arquivos e outros subdiretórios.
Eu gostaria de pesquisar um arquivo interno, digamos com *.c
ending, mas gostaria apenas de pesquisar no subdiretório "dir / dir2" e em todos os seus subdiretórios. Como posso formular isso?
Supondo que eu esteja em dir/
, tenho:
find . -name "*.c"
para pesquisar em todos os diretórios.
Como faço para restringir apenas a dir2
?
Você também pode usar o parâmetro -path
de find
no lugar de -name
:
find . -path "dir2/*.c"
Isso pode permitir que você encontre arquivos em dir2
, mesmo que dir2
não seja um subdiretório direto, E.G:
# find . -path "*/dir2/*.c"
./dir_a/dir2/file.c
./dir_b/dir2/file.c
Você pode fazer find dir2 -name '*.c'
Você também pode fazer (cd dir2; find -name '*.c')
Se você quisesse ver dir1 e dir3, mas não dir2, você poderia fazer find {dir1,dir3} -name '*.c'