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
我正在尝试根据在 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