删除以内部版本号结尾的linux目录


0

我有一个路径,其中将复制构建目录,因此我只需要保留最新的3个目录并删除其他目录,而不是按日期,而是使用最新的构建号。

如果我在/ tmp路径中有以下目录

1.1.0000-021、1.1.0000-005、1.1.0000-018、1.1.0000-004

我应该将/ tmp路径中的1.1.0000-004目录删除为最早的目录。

我正在尝试使用rm -rf / base / path -type d -ctime 4,但这是基于最新文件,不确定是否要删除最早的号码。


您可以使用脚本执行此操作。您尝试了什么?失败了?这不是“为我编写代码”网站。
Jan Doggen 2014年

“ ...它在哪里失败”?并编辑您的问题。所有相关信息都应放在其中,请勿在评论中回答。
Jan Doggen 2014年

Answers:


0

您可以使用以下链:

ls:列出文件/目录

sort -nr:对文件/目录进行数字排序,反向

tail:从列表中仅保留最后的$ n(here:4)个条目(如果仅剩余4个,则列表为空)

例如:

ls | sort -nr | tail +5 

然后取出文件并删除它们;(即使用xargs + rm)


1
谢谢菲利普,这似乎工作ls | sort -nr | tail -n +4 | xargs rm -rf
guest

很高兴我能帮上忙!
derphilipp 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.