删除以内部编号结尾的目录

时间:2014-09-11 10:36:27

标签: shell directory

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

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

1.1.0000-21, 1.1.0000-5, 1.1.0000-18, 1.1.0000-4

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

我正在尝试rm -rf /base/path -type d -ctime 4,但这是基于最新的文件,不确定要删除最旧的号码,我需要一些注册表吗?

1 个答案:

答案 0 :(得分:1)

您可以将sorttail合并为此

ls \          # Produce the list of directories,
| sort -r \   #  reorder it in reverse dictionary order
| tail -n +5  #  and trim the first 4 = 5-1 entries

这假定版本顺序与字典顺序一致,如果您的版本没有固定长度,则为假(因此版本2.0看起来更新为12.0)。你可以通过调整sort函数来解决这个问题。