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