当前位置: 首页>>技术问答>>正文


当我尝试删除空目录时,为什么会得到“Directory not empty”?

, , ,

问题描述

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

Cannot remove test: Directory not empty

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

我试过ls -la以确保没有隐藏文件,似乎没有:

command-line,files,delete,ubuntu

我试过sudo rmdir test以及sudo rm -rf test,我只是不知道出了什么问题。

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

最佳解决办法

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

  1. 右键单击文件夹

  2. 移到废纸篓

  3. 清空垃圾桶

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

次佳解决办法

我已经安装了10 + ubuntu双系统。两个系统共享Windows paritition。

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

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

chkdsk

通过cmd获取目标磁盘。签出了一些错误。然后我跑了

chkdsk /F

修复磁盘错误。

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

第三种解决办法

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

第四种办法

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

这一系列的操作对我有用。

  1. 从命令行开始

    sudo rmdir  --ignore-fail-on-non-empty folder-name-to-be-deleted
    

以上命令有助于ubuntu忽略目录不为空。

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

第五种办法

GUI解决方案

  1. 移动或切割&将文件夹粘贴到垃圾箱文件夹

  2. 清空垃圾

它完成了。

命令行解决方案

sudo mv folder_error/ .local/share/Trash

你可以用trash-cli清除:trash-empty或

sudo rm -fr ~/.local/share/Trash/*

第六种办法

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

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

第七种办法

如果您使用的是btrfs,则它可能是一个带有non-zero i_size的空目录。你可以检查是否是这种情况:

stat -c %s test

btrfs中空文件夹的i_size应该为零。就我而言,我用~/.config/chromium/Default获得6160。

建议的解决方案是卸载文件系统,运行btrfs check以确认问题并检查其他有问题的目录,最后运行btrfs check --repair进行修复。但是,此操作存在风险,因此最好先备份文件。

资料来源:Btrfs Problem FAQ

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7212.html,未经允许,请勿转载。