Por que esses dois comandos find fornecem resultados diferentes?

Por que esses dois comandos find fornecem resultados diferentes?

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, findretornará todas as pastas e arquivos. No segundo comando, se uma pasta for encontrada, o comando ls -lhlistará 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.

informação relacionada