Por que esses dois comandos find dão resultados diferentes?

1

Eu queria ver todos os arquivos modificados nos últimos 10 dias e quem os possuía, então eu inseri o seguinte para me dar uma idéia 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 dão resultados muito diferentes, mas não entendo o porquê. Alguém pode explicar o que está acontecendo e por que eles produzem resultados diferentes?

    
por Nevstah 17.06.2014 / 14:58

1 resposta

4

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 que o primeiro comando.

$ find . -maxdepth 1 -mtime -10 | wc -l
63
$ find . -maxdepth 1 -mtime -10 -exec ls -lh {} \; | wc -l
313

Você deve usar:

find . -maxdepth 1 -type f -mtime -10

find . -maxdepth 1 -type f -mtime -10 -exec ls -lh {} \;

para listar apenas arquivos.

    
por 17.06.2014 / 15:05

Tags