这对我来说似乎很奇怪。我正在运行内核 2.6.37.2 并运行:
~]$ cp -r /proc/ here
~]$ rm -rf here
按预期进行复制时,我遇到了一些权限被拒绝的情况,最终我按下了 Control-C。尝试删除新目录和文件时,我收到了Permission denied
很多文件。
作为注释,我发现这种奇怪的行为是因为一位朋友给我发送了.tgz
他的目录的快照/proc
。我提取了该目录,当我完成查看它时,我遇到了同样的问题。
rm -rf
因为 root 确实有效。
lsattr
显示 e 属性(这是我的所有文件/目录显示的属性)。
答案1
如果存在您没有写入权限的非空目录,则无法删除其内容。
$ mkdir foo
$ touch foo/bar
$ chmod a-w foo
$ rm -rf foo
rm: cannot remove `foo/bar': Permission denied
原因是rm
与任何其他命令一样受权限约束,并且删除权限bar
需要 的写入权限foo
。当您以 root 身份运行时,这并不适用,rm
因为 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 {} +