使用shell命令从目录中删除旧备份

Mai*_*nak 1 unix linux shell awk crontab

在我的shell脚本中,我正在创建我的文件夹的备份.我正在通过cronjob设置此活动,并且计划不断变化.

它使用时间戳保持备份.喜欢例如:

cd/tmp/BACKUP_DIR

backup_06-05-2014.tar
backup_06-08-2014.tar
backup_06-10-2014.tar
Run Code Online (Sandbox Code Playgroud)

我想要的是,每当我运行脚本时,它应该保留最新的一个和之前采用的备份.并删除剩余的备份.

就像我现在运行脚本一样,它应该保留

backup_06-10-2014.tar
backup_06-18-2014.tar
Run Code Online (Sandbox Code Playgroud)

并删除所有其他的.我rm应该使用什么命令?

小智 5

尝试如下:

rm $(ls -1t /tmp/BACKUP_DIR | tail -n +2)
Run Code Online (Sandbox Code Playgroud)

列表按文件的日期名称排序,只剩下最新的两个