Answers:
如果存在您没有写权限的非空目录,则无法删除其内容。
$ mkdir foo
$ touch foo/bar
$ chmod a-w foo
$ rm -rf foo
rm: cannot remove `foo/bar': Permission denied
原因是它rm
受权限限制,就像其他命令一样,而删除bar
权限要求具有的写权限foo
。当您rm
以root身份运行时,此方法不适用,因为root始终具有删除文件的权限。
要使目录树可删除,请将其中的所有目录设为可写(使用删除常规文件的权限无关紧要rm -f
)。您可以使用以下命令之一:
chmod -R u+w here # slow if you have a lot of regular files
find here -type d -exec chmod u+w {} +
/proc
。顺便说一句,这一次有点晚了,但是如果您在发布问题后找出答案,可以自己回答,然后留给可能遇到类似问题的其他人使用。