You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

find结合mv命令执行时出现"No such file or directory"错误的原因咨询

问题原因及解决思路

核心原因

find命令默认是从上到下递归遍历目录的:当你通过-exec mv把目标文件夹移动到备份目录后,find后续仍会尝试访问该文件夹的原路径(比如继续遍历它的子目录,或者在后续遍历步骤中再次检查这个路径),但此时原位置的文件夹已经被移走,自然会抛出find: ‘/backups/postgres/20250311/’: No such file or directory的错误——尽管移动操作本身已经成功完成。

而你用带echo的测试命令时,只是打印出要执行的mv指令,并没有实际移动目录,整个遍历过程中所有目录都在原位置,所以不会触发这个错误。

解决办法

可以通过以下几种方式避免这个错误:

  • 使用-depth选项:让find先处理子目录,再处理父目录,这样移动父目录时,它的子目录已经被遍历完成,不会出现后续找不到父目录的情况。示例命令:
    find /path/to/source -type d -mtime +28 -depth -exec mv {} /path/to/backup \;
    
  • 使用-prune参数:告诉find不要遍历已经匹配到的目录的子内容,避免后续尝试访问已被移动的目录。示例:
    find /path/to/source -type d -mtime +28 -exec mv {} /path/to/backup \; -prune
    

内容的提问来源于stack exchange,提问作者user30219691

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:02:33