当我尝试删除空目录时,为什么会出现“目录非空”?

rbr*_*ick 57 command-line delete files

我有这个空目录,但我不断收到以下错误消息:

Cannot remove test: Directory not empty
Run Code Online (Sandbox Code Playgroud)

我知道这个问题已经被问过很多次了,但没有一个有帮助。

我试图ls -la确保没有隐藏文件,但似乎没有: 在此处输入图片说明

我想sudo rmdir test还有sudo rm -rf test,我只是不知道什么是错的。

我读到这可能是文件系统的问题,但我不知道如何解决这个问题。

小智 54

我在外置硬盘上遇到了同样的问题,我使用命令行尝试了很多方法,但每次都失败了。这对我有用:

  1. 右键单击文件夹
  2. 移到废纸篓
  3. 清空垃圾桶

是的,这很愚蠢,但对我有用(我真的不知道如何以及为什么,但该死的文件夹不再存在)

  • 这里刚刚发生了什么?为什么有效? (4认同)
  • 这只是将损坏的文件夹从“.Trash-1000/files”移动到“.Trash-1000/expunged”,在那里它们仍然无法删除。 (3认同)
  • 我遇到了同样的问题,你的答案有效。不太清楚发生了什么愚蠢的事情,以及为什么“-rf”无法删除非空文件夹。 (2认同)

小智 7

我安装了win 10 + ubuntu双系统。并且两个系统共享 Windows 分区。

最近,我也遇到无法删除ubuntu下那些分区中的空文件夹。我找不到在linux下解决它的解决方案。

但是,在我切换到 Windows 并运行后

chkdsk
Run Code Online (Sandbox Code Playgroud)

通过cmd用于目标磁盘。检查出了一些错误。然后我跑

chkdsk /F
Run Code Online (Sandbox Code Playgroud)

修复磁盘错误。

完成后,我现在可以删除这些文件夹。

  • 这个方法对我有用。我认为同样重要的是要注意共享分区是 NTFS 格式的并且它可能已损坏。 (3认同)

Wol*_*ine 6

您可以通过键入删除它sudo rm -rf {dir_name}。该目录可能已设置为只读权限。我希望给定的命令可以删除文件夹。

  • 无论如何,我得到“目录不为空”。看起来很奇怪,所以我录下了我的屏幕来证明。 (2认同)

Cam*_*une 6

如果该目录是使用 CIFS(又名 samba)挂载的文件系统的一部分,并且它包含的文件是损坏的符号链接,则ls无法提及该文件。(我在运行 14.04.2 LTS 的 CIFS 客户端和运行 12.04.5 LTS 的服务器上观察到此错误。)

所以该目录不是空的,但是(通过 CIFS)你无法看到它。该文件只能通过在托管该文件系统的文件服务器上运行的命令来查看,因此只能删除。


小智 6

我有同样的问题无法删除目录,因为它不是空的。

这一系列操作对我有用。

  1. 首先从命令行

    sudo rmdir  --ignore-fail-on-non-empty folder-name-to-be-deleted
    
    Run Code Online (Sandbox Code Playgroud)

上面的命令帮助ubuntu忽略目录不为空。

  1. 然后只需转到文件夹和 Shift + Del。就是这样。