¿Por qué estos dos comandos de búsqueda dan resultados diferentes?

¿Por qué estos dos comandos de búsqueda dan resultados diferentes?

Quería ver todos los archivos modificados en los últimos 10 días y quién era su propietario, así que ingresé lo siguiente para darme una idea de cuántos resultados se obtendrían;

find . -maxdepth 1 -mtime -10

Entonces di la orden;

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

Ambos comandos dan resultados muy diferentes, pero no entiendo por qué. ¿Alguien puede explicar qué está pasando y por qué producen resultados diferentes?

Respuesta1

Como no utiliza la opción -type f, finddevolverá todas las carpetas y archivos. En el segundo comando, si se encuentra una carpeta, el comando ls -lhenumerará su contenido, lo que generará más resultados que el primer comando.

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

Deberías usar:

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

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

para enumerar archivos únicamente.

información relacionada