我已经创建了从目录中删除旧备份文件的脚本,但是这个命令在1周之前运行正常,脚本或包没有任何变化但仍然低于错误:
root@:# find /var/backups/abc/* -type d -mtime +6
/var/backups/abc/2016-03-09_0321
root@:~# find /var/backups/abc/* -type d -mtime +6 -exec rm -rf {} \;
find: `/var/backups/abc/2016-03-08_0321': No such file or directory
问题是,这个脚本每天都在cron上运行,我收到的邮件就像" find:`/ var / backups / abc / 2016-03-08_0321':没有这样的文件或目录"。文件被删除,但这些邮件是从root获取的。
答案 0 :(得分:3)
find /var/backups/abc/* -type d -mtime +6 -prune -exec rm -rf {} \;
在这里,我们对要删除的目录使用-prune
,因此find
将不会尝试读取其内容。
答案 1 :(得分:2)
这是因为在返回目录之后,find会尝试查看它(继续他的递归搜索),并且因为你刚删除它而失败。