删除以版本号结尾的 Linux 目录

删除以版本号结尾的 Linux 目录

我有一个路径,其中将复制构建目录,因此我只需要保留最新的 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 ,但这是基于最新文件,不确定是否获取要删除的最早号码。

答案1

您可以使用以下链:

ls:列出文件/目录

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

尾巴:从列表中保留最后 $n(此处为 4)个条目(如果只剩下 4 个,列表将为空)

例如:

ls | sort -nr | tail +5 

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

相关内容