Почему эти две команды find дают разные результаты?

Почему эти две команды find дают разные результаты?

Я хотел увидеть все файлы, измененные за последние 10 дней, и кто их владелец, поэтому я ввел следующее, чтобы получить представление о том, сколько результатов будет возвращено:

find . -maxdepth 1 -mtime -10

Затем я отдал команду;

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

Обе команды дают очень разный результат, но я не понимаю почему. Может кто-нибудь объяснить, что происходит и почему они дают разные результаты?

решение1

Поскольку вы не используете option -type f, findвернет все папки и файлы. Во второй команде, если папка найдена, команда ls -lhвыведет список ее содержимого, что даст больше результатов, чем первая команда.

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

Вам следует использовать:

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

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

для вывода только списка файлов.

Связанный контент