Подтвердить что ты не робот

Список всех файлов (с полными путями) в каталоге (и подкаталогах), порядок по времени доступа

Я хотел бы построить команду Linux, чтобы перечислить все файлы (с их полными путями) в определенном каталоге (и подкаталогах), упорядоченном по времени доступа.

ls может заказывать по времени доступа, но не дает полного пути. find дает полный путь, но единственный элемент управления, который у вас есть за время доступа, - это указать диапазон с -atime N (доступ как минимум 24 * N часов назад), чего я не хочу.

Есть ли способ заказать по времени доступа и получить полный путь сразу? Я мог бы просто написать script, но, похоже, должен быть способ сделать это со стандартными программами Linux.

4b9b3361

Ответ 1

find . -type f -exec ls -l {} \; 2> /dev/null | sort -t' ' -k +6,6 -k +7,7

Здесь будут найдены все файлы и отсортированы по дате, а затем по времени. Затем вы можете использовать awk или cut для извлечения имени дат и файлов из вывода ls -l

Ответ 2

вы можете попробовать:

 ls -l $(find /foo/bar -type f )
  • вы можете добавить другие параметры (например, -t для сортировки) в команду ls для достижения своей цели.
  • также вы можете добавить критерии поиска в find cmd

Ответ 3

find . -type f | xargs ls -ldt должен делать трюк, пока не так много файлов, которые вы нажимаете на команду, как ограничение аргументов, и создаете 2 экземпляра ls.

Ответ 4

find . -type f -exec ls -l --full-time {} \; 2> /dev/null | sort -t' ' -k +6,6 -k +7,7

Ответ Alex не работал у меня, так как у меня были файлы старше одного года, и сортировка перепуталась. Вышеприведенное добавляет параметр --full-time, который nuetralizes значения даты/времени и делает их сортируемыми независимо от того, насколько они стары.

Ответ 5

pwd | xargs -I % find % -type f