Eu queria ver todos os arquivos modificados nos últimos 10 dias e quem os possuía, então digitei o seguinte para ter uma ideia de quantos resultados seriam retornados;
find . -maxdepth 1 -mtime -10
Eu então emiti o comando;
find . -maxdepth 1 -mtime -10 -exec ls -lh {} \;
Ambos os comandos fornecem resultados muito diferentes, mas não entendo o porquê. Alguém pode explicar o que está acontecendo e por que eles produzem resultados diferentes?
Responder1
Como você não usa a opção -type f
, find
retornará todas as pastas e arquivos. No segundo comando, se uma pasta for encontrada, o comando ls -lh
listará seu conteúdo, causando mais resultados do que o primeiro comando.
$ find . -maxdepth 1 -mtime -10 | wc -l
63
$ find . -maxdepth 1 -mtime -10 -exec ls -lh {} \; | wc -l
313
Você deveria usar:
find . -maxdepth 1 -type f -mtime -10
find . -maxdepth 1 -type f -mtime -10 -exec ls -lh {} \;
para listar apenas arquivos.