Как отсортировать вывод find?

Как отсортировать вывод find?

Я использую команду find для вывода списка файлов, имена которых содержат строку: find ~/ -type f -name "*inductive*" Я хотел бы использовать конвейер для сортировки полученного списка файлов. Я хотел бы иметь возможность сортировать по размеру файла, дате создания, дате доступа ... Как это сделать? Спасибо.

решение1

Сортировка вывода по времени создания невозможна в Linux ( ctimeэто не дата создания файла). statимеет возможность отображать дату создания файлавремя рожденияс использованием тегов формата %wи %W, но они всегда показывают -и 0, соответственно, даже в файловых системах, которые хранят время создания/время рождения. Следовательно, он практически бесполезен для этой цели в Linux.

Однако возможны и два других порядка сортировки:

# Sort by size:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 5 -n

# Sort by access time:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 6 -M

Вы можете добавить -rфлаг, чтобы sortизменить порядок сортировки на обратный. man sortДля получения дополнительной информации см.

В зависимости от размера выходных данных для создания отсортированных выходных данных findможет потребоваться некоторое время .sort

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