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

标签 linux shell unix awk cron

在我的 shell 脚本中,我正在为我的文件夹创建一个备份。我正在通过 cronjob 设置此事件,并且时间表不断变化。

它正在保存带有时间戳的备份。例如:

cd/tmp/备份目录

backup_06-05-2014.tar
backup_06-08-2014.tar
backup_06-10-2014.tar

我想要的是,每当我运行脚本时,它应该只保留最新的脚本和之前进行的备份。并删除剩余的备份。

如果我现在运行脚本,它应该保持

backup_06-10-2014.tar
backup_06-18-2014.tar

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

最佳答案

尝试如下:

rm $(ls -1t /tmp/BACKUP_DIR | tail -n +2)

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

关于linux - 使用 shell 命令从目录中删除旧备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24284945/

相关文章:

Caesar Cipher C 程序未正确加密

c - 是否可以通过 makefile 设置环境变量?

linux - 创建自定义 setxkbmap 选项

linux - 无法在 Ghost 博客上配置电子邮件和重置密码

bash - 如何将多行输出存储在单独的变量中?

shell - 逐行比较两个文件并在另一个文件中生成差异

linux - 直写 RAM 磁盘,还是文件系统的海量缓存?

python - 有没有一种方法可以在不对组内的主机进行排序的情况下对 ansible 主机文件中的组进行排序?

shell - 循环遍历以逗号分隔的 shell 变量

java - 获取刚刚启动的进程的PID