英雄联盟删除cross文件夹:自动删除目录中的文件夹删除错误的文件夹

关于英雄联盟删除cross文件夹的问题,在delete a folder linux中经常遇到, 我试图写一个小的 bash 脚本,将被 cronjob 每月调用。

我试图写一个小的 bash 脚本,将被 cronjob 每月调用。

给定像pingLog -> 2020 -> Jan -> 04这样的文件夹结构,每个月的第一个月,它必须自动删除两个月前的文件夹:

if [ -d ".../pingLog/$( date +'%Y/%b' -d '2 month ago' )/" ];
then
    sudo rm -r ".../pingLog/$( date +'%Y/%b' -d '2 month ago' )/"        
fi

那么它必须删除“Year”文件夹,如果它是空的:

if [ $( "find .../pingLog/ -maxdepth 1 -type d -empty"; ) ];
then
    sudo rm -r $( "find .../pingLog/ -maxdepth 1 -type d -empty"; )
fi

有些东西在脚本中不起作用(可能是第二个 if 的条件)作为不应该验证 if 条件被删除的文件夹,但我找不到错误。

编辑

@ dash-o 您的解决方案有 2 个问题。为了测试目的,我创建了一个2019文件夹,其中包含Nov(2 个月前)。

如果我尝试手动启动脚本后,第二次这里的输出:

Folders: .../pingLog/2019/Nov have been deleted.
Folders: .../pingLog/2019 have been deleted.
find: ‘.../pingLog/2019’: No such file or directory
rmdir: missing operand
Try 'rmdir --help' for more information.

这是我的 2 个问题:

即使find失败,如果条件打印没有回声

失败时,我无法在文件上打印findrmdir输出

0

简化脚本并解决问题的两个建议。

对于删除,无需测试目录是否存在。只需使用 'rm-rf' 删除与 2 个月大的文件夹相关联的文件夹。

对于年度删除,您希望修改将删除范围限制为上xx年日志文件,并使用 rmdir 而不是 'rm-r'。这将降低删除可能包含数据的其他目录的风险。

T=.../pingLog
sudo rm -rf "$T/$(date +'%Y/%b' -d '2 month ago')"
find "$T/$(date '+%Y' -d '2 month ago')" -maxdepth 0 -type d -empty | xargs sudo rmdir 

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(39)
Cher no by:获取专辑last.fm api的发行日期
上一篇
C++大于等于:C++ 大于或等于运算符(c++ less than or equal to)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(38条)