在OSX上删除bash中太深的文件夹

时间:2014-03-24 22:29:05

标签: directory subdirectory rm recursive-regex

程序递归创建文件夹。它太深,完整路径字符串长度比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”说“地址错误”。

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

2 个答案:

答案 0 :(得分:0)

有趣的问题。

我猜您可以使用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;
}

答案 1 :(得分:0)

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

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

cd /A

然后

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

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

祝你好运!