Grep com -r
não estava funcionando para mim.
Eu então fiz uma situação de teste. O diretório /home/den/backup
agora contém um arquivo com a palavra washer
nele. Eu também criei um subdiretório dentro de /home/den/backup
. Nesse diretório, um arquivo contém a palavra washer
. O seguinte deve retornar dois hits em /home/den/backup/great.txt
e/home/den/backup/aaa/info.txt
se eu emitir
grep -r "washer" /home/den/backup/*.*
o resultado é um hit.
se eu emitir
grep -r "washer" /home/den/backup/aaa/*.*
o resultado é um hit.
O primeiro também não deveria ter encontrado o segundo, que está em um de seus subdiretórios?
Você pode ver o que está acontecendo aqui definindo o shell no modo de depuração usando
set -x
ou seja, o shell está expandindo
*.*
e correspondendo ao arquivo únicogreat.txt
- portanto,grep
pesquisa esse arquivo único.Se você deseja pesquisar recursivamente em todo o diretório , basta fornecer o diretório como argumento:
(Você pode desativar o modo de depuração novamente usando
set +x
)