ls -t | tail -n +2 | xargs rm
В замедленном режиме:
- список всех файлов, отсортированных по времени, сначала самые новые
- печать, начиная со 2-го (поэтому пропустите сначала)
- передать имена
rm
Я пытаюсь одна команда, которая удаляет все файлы из местоположения, кроме самого последнего. У меня есть рабочая команда для Linux, но она не работает на машине Solaris.
Команда ниже удалит все файлы, кроме последних 10.
ls -l /*.tps | head -n -10 | rm -rf
ls -t | tail -n +2 | xargs rm
В замедленном режиме:
rm
Следуя man-страницам Oracle и предполагая, что вы имеете в виду «самые последние» и «новейшие» файлы, я предлагаю следующий подход:
ls -1tr | tail -n +11 | xargs rm
для Linux и
ls -1tr | /usr/xpg4/bin/tail -n +11 | xargs rm
для оракула
Чтобы удалить все файлы из местоположения, кроме самого последнего, вы можете использовать эту кроссплатформенную команду:
ls -1t /location | sed -n '2,$p' | xargs rm
Программа Sed 2,$p
печатает каждую строку с 2 до конца ввода.