Я знаю, ls -tбудет перечислять все файлы по времени изменения. Но как я могу ограничить эти результаты только последними n файлами?
tharlней, так как она имеет все, что мне нужно.
Я знаю, ls -tбудет перечислять все файлы по времени изменения. Но как я могу ограничить эти результаты только последними n файлами?
tharlней, так как она имеет все, что мне нужно.
Ответы:
Попробуйте использовать голову или хвост. Если вы хотите 5 самых последних измененных файлов:
ls -1t | head -5
-1 (это единица) говорит, что по одному файлу на строку, а глава говорит, что возьмите первые 5 записей.
Если вы хотите последние 5 попыток
ls -1t | tail -5
lsв нескольких столбцах, но выходные данные lsпередаются по следующей команде с 1 файлом / dir за раз
ls -1t | head -n 6 | tail -n 5
В принятом ответе перечислены только имена файлов, но для получения 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
По умолчанию 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
ls -lrtможет помочь кому-то.