Unix shell 脚本出错 根据小时查找和删除

Error with Unix shell script Find and delete based on hours

我正在尝试根据在 shell 脚本中使用以下语句创建的日期删除 unix 中的文件夹内容。

find /mypath -mmin +$((60*24*1)) -exec rm -rf {} \;

我已经配置 运行 来自 Control M 的这个脚本。这会删除文件夹,但是脚本以错误代码 1 结尾。我怎样才能避免收到错误,这样我的工作才不会失败?

find: '/mypath/Xdb/20170802_001028': No such file or directory find: '/mypath/Xdb/20170802_001027': No such file or directory find: '/mypath/Xdb/20170801_142539': No such file or directory

我不明白你为什么要用

min +$((60*24*1))   

使用这个:

find /mypath -mtime +1 -exec rm -rf {} \;    

或者这个删除的目录没有检查它是否为空

find /mypath -mtime +7 -type d -print0 | xargs -0 rm -rf    

+7 删除旧的,-7 从今天删除到 7

除了 SamOl 的回答之外,如果您想坚持使用原始命令,则可以告诉 Control-M 接受字符串 No such file or directory 作为"OK".

要做到这一点,只需在作业的最后一个选项卡中添加一个 On/Do 操作 def =

On Do Actions
Specific statement output    
Statement = *    
Code = *No such file or directory*    
Do = Set job to OK

这里有一个 YouTube 剪辑 - https://www.youtube.com/watch?v=Y3S7GdAwjQ8