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
提供了一些与GNUparallel
相同的可能性,使用explainshell记录您的解决方案是个好主意。作为优化,我建议使用parallel
而不是xargs
:find.-print0 | parallel-0-I“{}”rm-rf“{}”
@danielorando,xargs
处理特殊字符(如空格
,`,
`和”
)的能力很差,OP没有提到,所以我认为在大多数情况下,xargs
提供了与GNU并行
相同的一些可能性