Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 无法使用shell命令删除目录_Linux_Shell - Fatal编程技术网

Linux 无法使用shell命令删除目录

Linux 无法使用shell命令删除目录,linux,shell,Linux,Shell,我想删除所有名称相同的目录RC_200,下面是我所做的: find -name "RC_200" -type d -delete 但它却在抱怨: find: cannot delete '.RC200': Directory not empty 可能是您应该运行管理员权限 如果你的操作系统Ubuntu在你的命令之前添加了“sudo”,或者你的操作系统在管理员密钥中看到了什么 或 如果有,请删除文件保护。可能是您应该运行管理员权限 如果你的操作系统Ubuntu在你的命令之前添加了“sudo

我想删除所有名称相同的目录
RC_200
,下面是我所做的:

find -name "RC_200" -type d -delete
但它却在抱怨:

find: cannot delete '.RC200': Directory not empty  

可能是您应该运行管理员权限

如果你的操作系统Ubuntu在你的命令之前添加了“sudo”,或者你的操作系统在管理员密钥中看到了什么


如果有,请删除文件保护。

可能是您应该运行管理员权限

如果你的操作系统Ubuntu在你的命令之前添加了“sudo”,或者你的操作系统在管理员密钥中看到了什么

如果有,请删除文件保护。

您应该尝试:

find-名称RC200-type d-exec rm-r{}\

您可以看到,该命令的作用是什么

此外,您还可以尝试@anubhava在评论中推荐的内容(注意末尾的
+
);此解决方案相当于
xargs
解决方案:

find-名称RC200-类型d-打印0 | xargs-0 rm-r

xargs
执行作为参数传递的命令,参数传递给
stdin
。这是使用
rm-r
删除目录及其所有子目录

您应该尝试:

find-名称RC200-type d-exec rm-r{}\

您可以看到,该命令的作用是什么

此外,您还可以尝试@anubhava在评论中推荐的内容(注意末尾的
+
);此解决方案相当于
xargs
解决方案:

find-名称RC200-类型d-打印0 | xargs-0 rm-r


xargs
执行作为参数传递的命令,参数传递给
stdin
。这是使用
rm-r
删除目录及其所有子目录

错误为“目录不为空”,而不是权限问题时预期的“权限被拒绝”。错误为“目录不为空”,而不是“权限被拒绝”如果是权限问题,这是意料之中的。使用explainshell记录解决方案是个好主意。作为优化,我建议使用
parallel
而不是
xargs
find-print0 | parallel-0-I“{}”rm-rf“{}”
@danieloolando,
xargs
处理特殊字符(如
空格
`,
`和
)OP没有提到这一点,所以我认为在大多数情况下,
xargs
提供了一些与GNU
parallel
相同的可能性,使用explainshell记录您的解决方案是个好主意。作为优化,我建议使用
parallel
而不是
xargs
find.-print0 | parallel-0-I“{}”rm-rf“{}”
@danielorando,
xargs
处理特殊字符(如
空格
`,
`和
)的能力很差,OP没有提到,所以我认为在大多数情况下,
xargs
提供了与GNU
并行
相同的一些可能性