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

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

find . -maxdepth 1 -mtime -10 

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

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

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

One Solution collect form web for “Почему эти две команды find дают разные результаты?”

Поскольку вы не используете параметр- -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 {} \; 

для отображения только файлов.

  • изменить поведение LS_COLORS
  • Количество файлов в каталоге, начиная с определенного текста
  • Извлечь диапазон элементов из i-го элемента в j-й элемент, вплоть до n-го элемента из списка
  • «/ Usr / bin / ping» отображается как желтый на красном в цветовой схеме Fedora по умолчанию - что это значит?
  • Почему Linux может показать имя файла, содержащее символ '/'?
  • Как получить точный размер файла и имя файла?
  • Где «документально подтверждается вывод команды« ls »по вертикали»?
  • Цикл forach для вывода ls
  • Где MacOS Finder хранит эту информацию (происхождение файла, который был отправлен мне)?
  • Порядок выполнения аргументов команды touch
  • EXT3: Если размер блока равен 4K, почему ls -l показывает размеры файлов ниже этого?
  • Linux и Unix - лучшая ОС в мире.