【问题标题】:Remove too deep folders in bash on OSX在 OSX 上的 bash 中删除太深的文件夹
【发布时间】:2014-05-02 13:09:24
【问题描述】:

一个程序递归地创建文件夹。它太深了,完整路径字符串长度超过了 MAX (getconf ARG_MAX),例如: /A/B/C/A/B/C/A/B/C//A/B/C/A/B/C/A/B/C/A/B/C/A/B/C/ A/B/C/A/B/C/A/B/C/A/B/C/A/B/C/A/B/C/A/B/C/A/B/C/A/ B/C/A/B/C …… 所以“sudo rm -fr /A”表示“地址错误”。

如何创建一个脚本来处理它? 谢谢,

【问题讨论】:

  • 我似乎无法复制这一点。我收到了几个 Directory not empty 错误,但我只是重新运行了命令,所有内容都自行删除了。
  • 这个命令对我有用:sudo find . -name A* -exec rm -rf {} \;

标签: directory subdirectory rm recursive-regex


【解决方案1】:

如果它是一个单独的磁盘,并且它自己的文件系统安装在 /A,请卸载它并重新格式化它。

如果没有,运行类似这样的东西(非常未经测试):

cd /A

然后

cd A || cd B || cd C && rm -rf A* B* C*

并继续执行它,点击向上箭头重复并再次执行直到它工作......

祝你好运!

【讨论】:

    【解决方案2】:

    有趣的问题。

    我猜你可以用 Xcode 创建一个命令行工具(文件 -> 新项目 -> 命令行工具,插入代码,然后单击“运行”工具栏按钮)。

    int main(int argc, const char * argv[])
    {
      @autoreleasepool {
    
        NSURL *url = [NSURL fileURLWithPath:@"/a/b/c/d/..."];
    
        NSError *error = nil;
        [[NSFileManager defaultManager] removeItemAtURL:url error:&error];
        if (error) {
          NSLog(@"%@", error);
        }
    
      }
    
      return 0;
    }
    

    【讨论】:

    • @user3085367 为什么不呢?它是免费的,并附带大量有用的东西(尤其是命令行工具)。任何使用 bash 的人都应该安装 Xcode。
    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 2012-03-30
    • 2014-11-14
    • 2021-07-27
    • 2021-11-20
    • 2022-07-16
    • 1970-01-01
    • 2016-05-31
    相关资源
    最近更新 更多