Команда для видалення всіх файлів, крім деяких останніх, які працюють як для Solaris, так і для Linux


0

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

Наведена нижче команда видалить усі файли, окрім останніх 10.

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

Відповіді:


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

У повільному режимі:

  • список всіх файлів, відсортованих за часом, найновішим спочатку
  • друк починається з 2-го (так що спочатку пропустити)
  • назв rm

завдяки @xenoid, але він не буде працювати. У мене є робоча команда, але вона не працює на коробці solaris. Solaris не приймає 2 аргументу для команди head / tail. (хвіст -n +2)
Ankit

@Ankit робить це допомогти?
xenoid

0

Слідуючи сторінкам підрозділу Oracle і припускаючи, що ви маєте на увазі "останні" "новітні" файли, я пропоную наступний підхід:

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

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


0

Щоб видалити всі файли з місця, окрім останнього, ви можете використовувати цю команду:

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

Sed програма 2,$p друкує кожний рядок, починаючи з 2 до кінця введення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.