无法在Unix中删除目录

36

我在Unix系统中有一个似乎无法删除的文件夹,其中包含一些以.panfs开头的隐藏文件。我尝试使用以下任一命令均无法删除:

rm -R <dir>
rm -Rf <dir>

有人有任何建议吗?


1
你遇到了什么错误? - itz2k13
没有错误 - 只是没有完成 - 即使文件大小为0kb... - fugu
尝试更改权限'chmod +w <dir>',然后尝试删除。 - itz2k13
3
无论你等待多久,它都无法完成吗?还是由于某种原因它只是运行缓慢,导致你不耐烦地输入^C?你可以尝试使用“strace rm -R <dir>”命令来查看它实际上正在做什么。 - twalberg
7
隐藏的 .panfs 文件是挂载目录的结果。当它们存在时,它们是“打开”的,不能被删除。我发现重新启动或卸载可以移除这些文件,然后你可以删除它们。 - SethMMorton
8个回答

67
尝试使用root用户或使用sudo删除它,如果你遇到麻烦。

使用根帐户执行rm -rf dir,这将被删除,因为你可能面临权限问题。

@user3817989 你确定你是以root用户身份执行该命令吗?'whoami'命令输出的是什么? - Paulo Fidalgo
@KalenGi 你需要对 'dir' 具有删除权限,否则你真的需要是 root(或所有者)。 - Paulo Fidalgo
1
@PauloFidalgo 对我不起作用,显示某种 rm: cannot remove 'foldername' Input/output error 错误。 - diffracteD

5
对于那些更喜欢将选项分离以完全掌握他们的 Linux 命令行的人,可以使用以下命令:

rm -r -f 目录名称

rm → 删除(remove)

-r → 递归地(recursively)

-f → 强制(force)(包括 chmod 权限)


4
使用dfdirmount检查您的目录是如何挂载以及属于哪个文件系统。请注意,如果使用NFSCIFS/SMB或其他分布式文件系统,可能会遇到问题……因为分布式文件系统会缓存(服务器端和客户端都会),所以不具备POSIX语义。参见filesystems(5)
很可能你正在使用NFS(那么你的问题应该说清楚,并给出更多细节,特别是在/etc/fstab中的挂载和导出选项,参见fstab(5),使用的NFS协议版本等)。然后需要更多地了解它是如何被挂载的,是否有进程使用该文件系统(使用lsof(8)……),以及认证工作方式。通常情况下,根访问权限并不像你希望的那样通过NFS工作……(直觉上,你的本地root不是网络范围内的root)。
在某些情况下,在所有NFS客户端卸载远程NFS文件系统后,需要从NFS服务器上删除文件。细节因使用的NFS协议版本和配置选项而异。
还可以参见nfsd(7)exports(5)chattr(1)等以及Serverfault上的这个问题,以及这个Linux NFS概述。

3
抱歉,但是20多个通过的解决方案对我没用 :( 但是我还是解决了问题。
在我的情况下,在根目录下,rm -rf(目录)会导致无限循环,并且该文件夹的大小不到1G。此外,该文件夹不可列出,即在文件夹中使用dir命令也会导致无限循环。
天哪!!!
通过按住启动时的左Shift进入恢复模式。 输入您的root密码或者如果没有密码则按Enter键。
cd /

mount -o remount,rw /

rm -f (directory)   // Purpose is to fix loop bug

rm -r (directory)

再见!

万岁 Linux Lite。


2

语法:

rm -rf <Directory_Name>

这对我很有帮助。 它会强制删除带有其所有内容的目录...


1
在我的情况下,我无法删除一个文件夹,如果我试图重命名它,会创建一个新的副本。
长话短说,我意识到有一个Linux服务指向那个文件夹,所以对我有用的是:
1. 更改此服务正在使用的文件夹 2. 重新启动我的Linux服务器
sudo reboot
  1. 删除该文件夹及其内容
rm -rf dir

可能有一些进程正在使用该文件夹,导致您不知道。您可以找到并终止该进程,或者像我一样快速解决问题的方法是重新启动服务器。


1

我最近遇到了一个问题,无法删除由QNAP上疯狂备份作业创建的文件夹。它会不断创建子/子/子/子/...文件夹,直到无法继续。

rm -rf sub
rm -rf sub/sub/sub/sub/sub/sub/sub

所有的rm命令都失败了,错误信息为:无法删除'sub/sub/sub/sub':目录非空。

我试图重命名一些文件夹以缩短路径,但这并没有帮助。但是在移动其中一个子文件夹之后,我能够成功删除所有文件。

mv sub/sub deleteme
rm -rf deleteme
rm -rf sub

0
如果您在尝试使用rm删除目录时遇到问题,可能是由于权限目录中存在文件。请确保您有足够的权限来删除目录及其所有内容。如果目录包含文件或子目录,则需要在rm命令中使用-r标志,如下所示:rm -r。在使用此命令时要小心,因为它将永久删除目录和其内容。
此外,命令rm -rf之所以有效是因为-r标志用于递归删除目录及其内容,而-f标志则强制删除而不需要确认。
在使用-rf组合时,请记得小心,因为它在删除之前不提供任何确认。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接