【问题标题】:Find: Cannot chdir to directory error message after deleting directories查找:删除目录后无法 chdir 到目录错误消息
【发布时间】:2012-09-05 12:54:50
【问题描述】:

我正在做一个项目来自动删除超过一天的特定目录。我有以下代码工作:

find Directory/ -type d -name "Directory.To.Delete.*" -mtime +1 -exec rm -rf {} \;

它运行良好并按预期删除目录(和内容),但它总是以错误结束:

查找:无法 chdir 到 Directory/ :没有这样的文件或目录

有没有办法运行此代码而不会遇到此错误?我不明白为什么这段代码在删除目录后试图 chdir。

【问题讨论】:

    标签: bash shell unix automation


    【解决方案1】:

    -exec之前添加-prune;这将阻止find 进入匹配目录:

    .... -mtime +1 -prune -exec ...
    

    【讨论】:

      【解决方案2】:

      在 -type d 之前添加 -depth 也会阻止 find 进入匹配的目录。

      # mkdir 1
      # mkdir 2
      # touch -d yesterday 1
      # find . -depth -type d -mtime +0 -exec rm -rf {} \;
      # ls
      2
      

      从人找到:

         -prune True;  if  the file is a directory, do not descend into it. If -depth is given, false; no effect.  Because -delete implies -depth, you cannot usefully use -prune and -delete together.
      

      【讨论】:

        猜你喜欢
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 2018-12-15
        • 2010-09-09
        • 1970-01-01
        • 2019-08-03
        • 1970-01-01
        相关资源
        最近更新 更多