删除最旧备份的命令行

Command line to remove oldest backup

我有以下包含多个 Backup from $(date +"%d.%m.%Y at %H:%M:%S").zip 文件的目录。

/opt/
   /opt/files/
      /opt/files/private/*
      /opt/files/backup.sh
      /opt/files/backup.txt
      /opt/files/Backup from $(date +"%d.%m.%Y at %H:%M:%S").zip

使用每日 cronjob 0 0 * * * cd /opt/files/ && ./backup.sh > /opt/files/backup.txt 我目前正在管理我的备份。

您可以想象,随着时间的推移,这个目录会变得越来越大。我现在想创建另一个脚本(或 cronjob,如果它与一个命令一起工作)以在 14 天后删除最旧的 /opt/files/Backup from $(date +"%d.%m.%Y at %H:%M:%S").zip(这样我一直有 14 个最近的备份)。

如果你能解释一下你的答案就太好了。

find /opt/files/Backup -name \*.zip -a -mtime +14 -ls

如果您确信匹配的文件是要删除的文件,请将 -ls 替换为“-exec rm {} \;”