【问题标题】:No such file or directory find command on linux [closed]linux上没有这样的文件或目录查找命令[关闭]
【发布时间】:2016-06-30 10:18:41
【问题描述】:

我创建了从目录中删除旧备份文件的脚本,但此命令在 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': No such file or directory”的邮件。文件被删除,但这样的邮件是从 root 获取的。

【问题讨论】:

    标签: linux ubuntu find debian crontab


    【解决方案1】:
    find /var/backups/abc/* -type d -mtime +6 -prune -exec rm -rf {} \;
    

    在这里,我们在即将删除的目录上使用-prune,因此find 将不会尝试读取其内容。

    【讨论】:

    • #Toby Speight,我已根据您的建议编辑了答案。谢谢!
    • 谢谢它的工作....
    【解决方案2】:

    这是因为在返回你的目录之后,find 会尝试查找它(继续他的递归搜索),并且会因为你刚刚删除它而失败。

    【讨论】:

    • 有什么解决办法吗?
    • 是的。解决方案是使用 -prune 并在这篇文章中进行了描述:unix.stackexchange.com/questions/115863/…
    • @TomMagis,返回您的目录后实际上应该是删除/删除您的目录吗?
    猜你喜欢
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多