Я знаю 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
робить висновок читабельним для людини (тобто розміри файлів відображаються в kb, mb тощо)
-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
може комусь допомогти.