3

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

1 ответ1

2

Сортировка вывода по времени создания невозможна в 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 может занять некоторое время.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .