我有一个备份文件夹,而不是使用日历之类的文件夹结构来组织文件。我想每5天删除一次,但是由于主文件夹早于5天,所以最终删除了完整备份。
资料夹结构:
Backup
-> 2017
-> October
-> 28
-> 29
-> 30
-> 31
-> November
-> 1
-> 2
-> 3
我试过运行此命令:
find /mnt/backup/* -type d -mtime +5 -execdir rm -rf {} \;
但是它将删除目录2017,因为它早于5天,这意味着它将删除所有子文件夹。我只想删除这里已有5天的目录。例如,如果今天是11月3日,我只想删除目录28和29。然后,当它成为11月5日时,我希望删除整个10月目录,因为其中的所有内容现在都将超过5天。有什么建议么?
谢谢
使用-mindepth 1
如果你不想2017
被感动:
$ mkdir -p foo/2017/{October/{28..31},November/{1..3}}
$ touch -d 'now - 6 days' foo/2017/October/{28,29} foo/2017
$ find foo/* -mindepth 1 -mtime +5
foo/2017/October/28
foo/2017/October/29
$ find foo/* -mtime +5
foo/2017
foo/2017/October/28
foo/2017/October/29
如果从而foo
不是从开始foo/2017
,请使用-mindepth 2
:
$ find foo/ -mindepth 2 -mtime +5
foo/2017/October/28
foo/2017/October/29
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句