2009-04-09 13:17:20 +0000 2009-04-09 13:17:20 +0000
1422
1422

Как отсортировать выходные данные 'ls' по дате последнего изменения?

Как отсортировать выходные данные ls по дате последнего изменения?

Ответы (10)

1687
1687
1687
2009-04-09 13:20:44 +0000
ls -t

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

ls -tr

Страница ls man page описывает это более подробно, а также перечисляет другие опции.

155
155
155
2010-04-06 14:44:45 +0000

Попробуй это: ls -ltr. Это даст вам свежую до конца списка.

48
48
48
2012-04-15 20:23:29 +0000

Для полного ответа я использую: ls -lrth

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

31
31
31
2013-07-19 11:01:24 +0000

Я использую иногда это:

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

или

, чтобы выглядеть recursively о том, какие файлы были изменены за последние 5 минут.

… или сейчас, с последней версией GNU find:

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

… … и даже для неограничения файлов:

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

(обратите внимание, что -d переключается на ls для не отображения содержимого каталогов)

Более надежный способ?

Взгляните на мой ответ на find и сортировку по дате изменен

22
22
22
2012-04-15 18:41:06 +0000

Добавить:

alias lt='ls -Alhtr'

в $homedir/.bashrc

18
18
18
2017-07-26 07:21:37 +0000

Мнемонический

Не игнорирует записи, начинающиеся с . и сортировать по дате (новый первый):

ls -at

Не игнорирует записи, начинающиеся с . и обратный сорт по дате (старый первый):

ls -art

Не игнорирует записи, начинающиеся с ., используйте длинный формат листинга и сортировать по дате (новый первый):

ls -alt

Для печати в формате, удобном для чтения человеком, не игнорируйте записи, начинающиеся с ., используйте длинный формат списка и сортируйте по дате (самый новый первый) (@Заметка Евгения Сергеева):

ls -halt

, но будьте осторожны с последним, потому что простой неправильный ввод может привести к аварийному завершению работы сервера. .. (@Isaac note)

16
16
16
2013-11-11 16:11:57 +0000

Найти все файлы в файловой системе, которые были изменены максимально 3 * 24 часа (3 дня) назад и до сих пор:

find / -ctime 3
12
12
12
2016-03-06 18:21:16 +0000

Чтобы показать 10 последних отсортированных по дате, я использую что-то вроде этого:

ls -t ~/Downloads | head -10

или чтобы показать старейший

ls -tr ~/Downloads | tail -10
9
9
9
2014-06-15 21:47:51 +0000

Использование только базовых Unix команд:

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

Это работало на Linux; столбец 8 - “n” (числовой), столбец 6 - “M”, месяц.

Я новенький в sort, так что этот ответ, вероятно, можно было бы улучшить. Не говоря уже о том, что в ls и sort нужны дополнительные опции для использования точных временных меток, но не всем это понадобится.

-1
-1
-1
2020-02-28 11:04:14 +0000

Один из возможных способов показать, например, последние 10 изменённых файлов:

ls -lrth | tail -n 10

Описание вышеприведённой команды:

ls - list

аргументы:

l - long
r - reverse
t - sort by time
h - human readable

, то есть команда tail, которая показывает только 10 последних строк, определённых параметром n (количество строк)…

Похожие вопросы

6
11
5
37
3