Я использую команду 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