Я знаю, что ls -t
перечислит все файлы по времени изменения. Но как я могу ограничить эти результаты только последними n файлами?
Как я могу перечислить (ls) 5 последних измененных файлов в каталоге?
Ответы (5)
Попробуйте использовать голову или хвост. Если вам нужны 5 последних измененных файлов:
ls -1t | head -5
-1 (это единица) говорит, что один файл в строке, а голова говорит, что нужно взять первые 5 записей.
Если вы хотите последние 5 попыток
ls -1t | tail -5
ls
в нескольких столбцах, но вывод ls
передается следующей команде с 1 файлом/каталогом за раз
- person Alex; 29.03.2013
ls -1t | head -n 6 | tail -n 5
- person Ryan; 29.03.2013
В принятом ответе перечислены только имена файлов, но для получения 5 лучших файлов также можно использовать:
ls -lht | head -6
куда:
-l
выводит в виде списка
-h
делает выходные данные удобочитаемыми для человека (т. е. размеры файлов отображаются в килобайтах, мегабайтах и т. д.)
-t
сортирует вывод, помещая последний измененный файл первым
head -6
покажет 5 файлов, потому что ls
печатает размер блока в первой строке вывода.
Я думаю, что это немного более элегантный и, возможно, более полезный подход.
Пример вывода:
total 26960312
-rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py
-rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf
-rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf
-rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf
-rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv
Используйте команду tail
:
ls -t | tail -n 5
ls -tr
) или использовать head
вместо tail
, чтобы получить 5 самых новых.
- person Headbank; 03.01.2020
По умолчанию ls -t
сортирует вывод от самого нового к самому старому, поэтому используемая комбинация команд зависит от того, в каком направлении вы хотите упорядочить вывод.
Для самых новых 5 файлов, упорядоченных от самого нового к самому старому, используйте head
, чтобы взять первые 5 строк вывода:
ls -t | head -n 5
Для 5 новейших файлов, упорядоченных от самого старого к самому новому, используйте переключатель -r
, чтобы изменить порядок сортировки ls
, и используйте tail
, чтобы взять последние 5 строк вывода:
ls -tr | tail -n 5
ls -t
список файлов по времени создания, а не по времени последнего изменения. Используйте ls -ltc
, если вы хотите отобразить файлы по времени последнего изменения от последнего к первому (сверху вниз). Таким образом, чтобы перечислить последние n: ls -ltc | head ${n}
-t sort by modification time, newest first
- person Joma; 09.09.2016
ls -lrt
может кому-то помочь. - person PJ Brunet   schedule 12.01.2015tharl
, так как у него есть все, что мне нужно. - person Adam Grant   schedule 15.02.2018