我正在尝试编写一个cron作业,该作业将在Raspberry Pi上运行,并且每隔几天或每两周运行一次,并删除一些文件夹,这些文件夹是特定于日期的,并且是自动生成的,例如:
2020-02-08
2020-02-09
2020-02-10
2020-02-11
2020-02-12
2020-02-13
2020-02-14
2020-02-15
2020-02-16
我希望能够遍历这些文件夹,并删除过去的X天文件夹,同时保留过去的Z天文件夹,例如:
删除:
2020-02-08
2020-02-09
2020-02-10
2020-02-11
保持:
2020-02-12
2020-02-13
2020-02-14
2020-02-15
2020-02-16
,然后在4到5天的时间内再次运行,删除上周保存的内容,以至第四。
我知道我可以运行rm -rf 2020-*
来删除所有以此开头的文件夹/文件,但是我需要一个脚本来为我完成以上操作!
此外,在每个文件夹中将有成千上万个文件,这是一个执行良好的蚂蚁删除过程要牢记的事情
答案 0 :(得分:2)
在父目录中执行以下命令:
find . -mtime +5 -type d -name 2020-\* -exec rm -rf {} \;
上面的命令将查找所有已存在5天以上且名称与2020- *相匹配的目录(您可能希望考虑将其用作将来的证明,也许还要加上2 *)。具有该名称(和修改时间)的所有目录将被删除。
您可能要推迟执行该命令的-exec部分。请先尝试以下命令:
find . -mtime +5 -type d -name 2\*
这将让您知道找到的目录是您要删除的目录,然后再将其删除。