如何让 Bash 找到早于 x 天的目录并删除它们

如何让 Bash 找到早于 x 天的目录并删除它们

我有一个备份文件夹,其中包含 mysql 备份目录

\备份

  • 2022-08-20
  • ...
  • 2022-09-12

我正在运行 crontab 作业来进行备份,然后尝试删除最旧的目录,但保留其中的 14 个。

这为我提供了过去 14 天内修改的所有目录

find backup/ -type d -mtime +14

我曾尝试过执行 rm()

find backup/ -type d -mtime +14 -exec rm {}

这给出了rm: cannot remove ‘backup/2022-08-29’: Is a directory

所以我尝试了-删除选项

find backup/ -type d -mtime +14 -delete

但这给出了这个错误find : cannot delete 'backup/2022-08-29': Directory not empty

我怎样才能同时做这两件事?

相关内容