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

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

ls -l /*.tps | head -n -10 | rm -rf

3 ответа3

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

В замедленном режиме:

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

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

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

Sed program 2,$p печатает каждую строку, начиная с 2 до конца ввода.

0

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

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

ls -1tr | /usr/xpg4/bin/tail -n +11 | xargs rm для оракула

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .