Удалите все каталоги, содержащие цифры, кроме самых последних, созданных в Red Hat Linux Server с помощью Regex. - PullRequest
0 голосов
/ 05 июня 2018

Структура файла:

/56
/57
/58
/lastFailedBuild
/lastStableBuild
...

Я пытаюсь удалить только /56 и /57.

Вот мой текущий сценарий оболочки, который запускается во время процесса Дженкинса.

rm -rf [0-9]*

но это, очевидно, также удаляет /58.Я хотел бы сделать что-то вроде этого: rm -rf [0-9]*!({env.BUILD_NUMBER}), где я могу хранить остальные каталоги, включая /58.

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете получить список каталогов без последнего, используя head -n -1:

rm -rf `ls -d [0-9]* | head -n -1`

На платформах, где head -n -1 недоступно, вместо этого можно использовать sed '$ d' (кредиты @l'L'l):

rm -rf `ls -d [0-9]* | sed '$ d'`
...