Як можна сортувати вихід 'ls' за останньою зміненою датою?


Відповіді:


1637
ls -t

або (для зворотного, останнє внизу):

ls -tr

Сторінка lsman описує це детальніше та перераховує інші параметри.


312
ls -haltдля human readable, show hidden, print details, sort by date.
Євгеній Сергєєв

6
У випадку, коли когось цікавить, -tі -rаргументи, і аргументи вказані в розділі про lsстандарт POSIX , тому вони повинні бути сумісні в Unices.
Марк Амері

5
ls -lltдля показу позначки дати та часу сортування
Харшул Пандав

4
Так, це можливо
Ashraf.Shk786

6
@EvgeniSergeev DONT MEMORIZE ls -haltпростий помилка може призвести до збою вашого сервера! linux.die.net/man/8/halt
Ісаак

148

Спробуйте це: ls -ltr. Це дасть вам останні до кінця списку


Я використовував це для отримання списку файлів у моєму сховищі Git за останньою датою редагування. ls -alt $(git ls-files -m)Дякую!
NobleUplift

45

Для повної відповіді ось що я використовую: ls -lrth

Помістіть це у свій сценарій запуску /etc/bashrcта призначте псевдонім на зразок цього: alias l='ls -lrth'Перезавантажте свій термінал, і ви зможете набрати lта переглянути довгий список файлів.


14
Ви також можете зателефонувати, source /etc/bashrcякщо хочете додати його до свого репертуару під час запуску.
cwallenpoole

1
Ви також можете додати його ~/.bash_aliasesлише для свого користувача (файл можна створити, якщо його вже немає
Dinei

29

Я використовую колись це:

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -tr

або

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -ltr

рекурсивно дивитись, які файли були змінені за останні 5 хвилин.

... або зараз, з останньою версією GNU знайдіть :

find . -type f -mmin -5 -exec ls -ltr {} +

... і навіть не обмежуючи файли :

find . -mmin -5 -exec ls -ltrd {} +

(зверніть увагу на -dперемикач на, lsщоб не відображати вміст каталогів)

Більш надійний спосіб?

Подивіться на мій ансер, щоб знайти та сортувати за датою зміни


Під рекурсивним способом ви маєте на увазі, що він перераховує всі файли у підкаталогах, чи не є вже перемикач на це?
jiggunjer

@jiggunjer ls -Rltrбуде сортувати за dir, потім за датами, find -type f -mmin -5 -exec ls -ltr {} +буде просто друкувати файли, змінені за останні 5 хвилин, відсортовані за датою, незалежно від дерева каталогів!
Ф. Хаурі

Зауважте, що це не спрацює, якщо список файлів занадто довгий, щоб передати його як один виклик оболонки ls( unix.stackexchange.com/a/118200/27186 ) - тоді ви побачите один відсортований набір файлів, а потім інший впорядкована купа файлів тощо, але весь список не буде відсортований. Див. Superuser.com/questions/294161/… для сортування довших списків із знахідкою.
unhammer

@unhammer Ви маєте рацію, щоб це безпечно працювало, перегляньте мою недавню програму Unix / Linux, знайдіть і сортуйте за датою зміни
F. Hauri,


15

Мнемонічний

Для того, щоб не ігнорувати записи, починаючи з .і сортувати за датою (найновіше спочатку):

ls -at

Для того, щоб не ігнорувати записи, починаючи з .та скасувати сортування за датою (найстаріший перший):

ls -art

Щоб не ігнорувати записи, починаючи з цього ., використовуйте довгий формат переліку та сортуйте за датою (найновіший перший):

ls -alt

Для друку людських читаних розмірів не ігноруйте записи, починаючи з цього ., використовуйте довгий формат лістингу та сортуйте за датою (найновіший перший) (примітка @EvgeniSergeev):

ls -halt

але будьте обережні з останнім , тому що простий помилка може призвести до збоїв на сервері ... (@ примітка Isaac)


14

Знайдіть усі файли у файловій системі, які були максимально змінені 3 * 24 години (3 дні) тому до цього часу:

find / -ctime 3

10

Щоб показати 10 останніх відсортованих за датою, я використовую щось подібне:

ls -t ~/Downloads | head -10

або показати найдавнішу

ls -tr ~/Downloads | tail -10

це дасть ls -t head -2та ls -tr | tail -2дає такий же результат, варіант (-t / -tr) слід зберігати фіксованим та модифікованим хвостом / головою чи віце-вершем, модифікація обох - це як модифікація нічого
DDS

7

Використання лише дуже основних команд Unix:

ls -nl | sort -k 8,8n -k 6,6M

Це працювало на Linux; стовпець 8 - "n" (числовий), колонка 6 - "M", місяць.

Я новачок sort, тому, можливо, цю відповідь можна покращити. Не кажучи вже про те, що для цього потрібні додаткові параметри lsта sortвикористовувати точні часові позначки, але не всім це буде потрібно.


5
Я підозрюю, що ваша відповідь не отримала жодного голосу, оскільки вона розбирає результат ls - дивіться канонічний аргумент проти цього, і це питання про несинтез ls
однойменний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.