【问题标题】:Can't remove a directory in Unix无法在 Unix 中删除目录
【发布时间】:2013-06-01 14:29:19
【问题描述】:

我在 Unix 中有一个看似不可删除的目录,其中包含一些名称以 .panfs 开头的隐藏文件。我无法使用以下任一命令将其删除:

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

有人有什么建议吗?

【问题讨论】:

  • 你遇到了什么错误?
  • 没有错误 - 它只是没有完成 - 即使文件是 0kb...
  • 尝试更改权限 'chmod +w ' 然后尝试删除
  • 即使您等待,它是否永远不会完成?或者它只是因为某种原因很慢,导致你不耐烦地输入^C?你可以试试strace rm -R &lt;dir&gt; 看看它到底在做什么。
  • 隐藏的 .panfs 文件是挂载目录的结果。当它们出现时,它们是“打开的”并且不能被移除。我发现重启或卸载会删除这些文件,然后您可以删除这些文件。

标签: linux unix directory rm


【解决方案1】:

如果遇到问题,请尝试使用 root 用户 或使用 sudo 删除它

rm -rf dir 与root 帐户一起使用,它将被删除,因为您应该面临权限问题。

【讨论】:

  • @user3817989 你确定你是以root身份发出命令吗? 'whoami' 命令说什么?
  • @KalenGi 您需要拥有 'dir' 的权限才能将其删除,否则您确实需要成为 root(或所有者)。
  • @PauloFidalgo 不适合我,说某种rm: cannot remove 'foldername' Input/output error
【解决方案2】:

对于那些喜欢将选项分开以完全掌握他们的 linux 命令行的人来说

rm -r -f directory_name

rm → 删除

-r → 递归

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

【讨论】:

    【解决方案3】:

    检查df dirmount 您的目录是如何安装的以及它属于哪个file system。请注意,如果您使用NFSCIFS/SMB 或其他distributed file system,您可能会遇到问题……因为分布式文件系统正在缓存(服务器端和客户端),所以没有 POSIX 语义。见filesystems(5)

    很可能您正在使用 NFS(那么您的问题应该说明这一点,并提供更多详细信息,特别是 /etc/fstab 中的挂载和导出选项,请参阅 fstab(5),使用的 NFS 协议版本等...)。然后,您需要详细说明它是如何安装的、是否有使用该文件系统的进程(使用lsof(8)...)以及身份验证的工作原理。很多时候,root 访问并不能完全按照您的意愿通过 NFS 工作......(直观地说,您的本地 root 不是网络范围的 root)。

    在某些情况下,在所有 NFS 客户端上卸载远程 NFS 文件系统后,您需要删除 NFS 服务器上的文件。详细信息因使用的 NFS 协议版本和配置选项而异。

    另请参阅 nfsd(7)exports(5)chattr(1) 等和 this question 上的 Serverfault,以及此 Linux NFS 概述。

    【讨论】:

      【解决方案4】:

      抱歉,经过 20 多次投票的解决方案对我不起作用 :) 但我成功了。

      在我的情况下,在根目录下, rm -rf (目录)会导致无限循环,并且文件夹的大小在 gig 之下。此外,文件夹是不可列出的,在文件夹中使用 dir 命令也会导致无限循环。

      天哪!!!

      在开机时按住左移键进入恢复模式。 提供您的 root 密码,如果没有,请按 Enter。

      cd /
      
      mount -o remount,rw /
      
      rm -f (directory)   // Purpose is to fix loop bug
      
      rm -r (directory)
      

      再见!

      欢迎 Linux Lite。

      【讨论】:

        【解决方案5】:

        语法:

        rm -rf <Directory_Name>
        

        它对我有用。 它将删除目录及其所有内容...(强制)

        【讨论】:

          【解决方案6】:

          我最近无法删除由 QNAP 上的疯狂备份作业创建的文件夹。它创建了 sub/sub/sub/sub/sub/.... 文件夹,直到它无法创建为止。

          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
          

          【讨论】:

            【解决方案7】:

            cd 进入目录,然后使用rm -rf * 命令删除文件,然后尝试rmdir 删除目录。

            【讨论】:

              【解决方案8】:

              就我而言,我无法删除文件夹,如果我尝试重命名它,则会创建一个新副本。

              长话短说,我意识到有一个 Linux 服务指向该文件夹,所以对我有用的是:

              1. 更改此服务使用的文件夹
              2. 重启我的 Linux 服务器
              sudo reboot
              
              1. 删除文件夹及其内容
              rm -rf dir
              

              您可能不知道正在使用该文件夹的进程,因此您可以找到并终止该进程,或者像我作为快速解决方案所做的那样重新启动服务器。

              【讨论】:

                猜你喜欢
                • 2012-10-19
                • 2022-01-01
                • 1970-01-01
                • 2010-09-09
                • 2012-01-31
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多