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

Я накапливаю последовательно названные файлы в результате автоматизированного процесса, и я хотел бы сохранить только последние 10. Я попробовал это, что привело к удалению всего:

ls -r | more +11 | xargs rm

По-видимому, в канале more +n приводят к передаче всего результата без учета аргумента +n .

Какой был бы правильный подход?

One Solution collect form web for “Как удалить все, кроме последних 10 файлов”

Я признаю, что ничто в more документации не выскакивает на меня, говоря, что это произойдет. Но, поскольку вы хотите начать вывод (вывод / обработку) ввода (списка файлов) с указанным номером строки (в частности, 11), логическая команда для использования – tail :

 ls -r | tail -n +11 | … 

Слово для мудрых: проверяйте подобные вещи, используя трубопровод в cat или xargs (без команды), прежде чем делать что-то опасное, например xargs rm .

  • Использование xargs для генерации ссылок
  • Возможно ли, чтобы ls поддерживал порядок своих входов
  • использование измененного содержимого файла в качестве аргументов
  • xargs и <и> в те же файлы
  • xargs с перенаправлением stdin / stdout
  • Отправка списка вакансий в slurm
  • Как мне регистрировать xargs -0 rm?
  • Xargs и rm с a *
  • Как подключить вывод поиска к другому вызову find
  • Объединение bash% с xargs%
  • Как создать бесконечный поток строк в bash
  • Linux и Unix - лучшая ОС в мире.