使用 Regex 删除所有包含数字的目录,除了最近在 Red Hat Linux 服务器中创建的目录

Delete all directories that contain digit(s) except for the most recently created in Red Hat Linux Server using Regex

文件结构:

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

我只想删除 /56/57

这是我当前的 shell 脚本,它在我的 Jenkins 进程中得到 运行。

rm -rf [0-9]*

但这显然也删除了 /58。我想做这样的事情: rm -rf [0-9]*!({env.BUILD_NUMBER}) 我可以保留其余目录,包括 /58.

您可能会使用 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'`