我有一条路径会复制构建目录,因此我只需要保留最新的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
,但这是基于最新的文件,不确定要删除最旧的号码,我需要一些注册表吗?
答案 0 :(得分:1)
您可以将sort
和tail
合并为此
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函数来解决这个问题。