Команду, чтобы удалить все файлы, кроме последнего, которые работают как для Solaris и Linux

Я пытаюсь одну команду, которая удаляет все файлы из папки, кроме последней. У меня есть рабочая команда для linux, но она не работает на машине solaris.

ниже команда удалит все файлы, кроме последних 10.

ls -l /*.tps | head -n -10 | rm -rf
10
задан Romeo Ninov
15.12.2022 4:45 Количество просмотров материала 3047
Распечатать страницу

3 ответа

ls -t {pattern} | tail -n +2 | xargs rm

в slow-mo:

  • список всех файлов, отсортированных по времени, сначала новые
  • печать, начиная со 2-го (так что пропустите первый)
  • передать имена rm
0
отвечен xenoid 2022-12-16 12:33

следуя страницам Oracle man и предполагая, что вы имеете в виду "последние ""новейшие" файлы, я предлагаю следующий подход:

ls -1tr | tail -n +11 | xargs rm для linux и

ls -1tr | /usr/xpg4/bin/tail -n +11 | xargs rm на oracle

0
отвечен ben 2022-12-16 14:50

удалить все файлы из папки, кроме последней, вы можете использовать это кросс-платформенный команды:

ls -1t /location | sed -n '2,$p' | xargs rm

Sed программа 2,$p выводит каждую строку с 2 до конца ввода.

0
отвечен Sasha Golikov 2022-12-16 17:07

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх