Я знаю 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може комусь допомогти.