使用 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'`
文件结构:
/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'`