“无法删除‘some_directory’:目录不为空”

“无法删除‘some_directory’:目录不为空”

我尝试删除一些目录,但是

$ rm DE.aspx_files -r
rm: cannot remove `DE.aspx_files': Directory not empty

但列出其内容不会返回任何内容

$ ls DE.aspx_files
$

添加:实际上

$ ls -la DE.aspx_files

total 4
drwx------ 1 ting ting 4096 Sep 14 20:48 .
drwx------ 1 ting ting    0 Sep 13 22:34 ..
-rw------- 1 ting ting    0 Sep 13 22:34 .fuse_hidden0001d4bf00000006

当我尝试时rm .fuse_hidden0001d4bf00000006,它被删除,但又创建了另一个.fuse_hidden0001d4bf00000007

所以我想知道发生了什么事,以及如何解决这个问题?

注意:这是一个新买的外部便携式硬盘,我只是使用数据恢复程序将一些文件复制到其中。

操作系统:Ubuntu 12.04

谢谢!

答案1

该表格的文件.fuse_hidden*是由创建的保险丝文件系统,当文件被删除但仍在某处使用并且仍然必须具有目录条目时。这类似于.nfs*导出的目录中的文件网络文件系统

运行df -T .以查看当前目录上安装的文件系统的类型及其安装点。对于外部硬盘,很可能这是通过挂载的 NTFS 文件系统NTFS-3G驱动程序,基于FUSE。

该名称是文件系统驱动程序为已删除文件创建的假名称。您无法删除该文件(或者更确切地说,如果您创建该文件,它会以另一个名称重新出现)。您也无法删除该目录,因为它不为空。您需要找到正在使用该文件的内容。正在使用的最可能原因是它是否被某些应用程序打开。运行lsof /media/mount-pointwhere /media/mount-pointis the filesystem mount point 并在该目录中查找打开的文件。

答案2

对于外部硬盘,可以通过以下方式解决此问题:

  • 右键单击该文件夹并选择Move to Trash
  • 清空垃圾

即使rm -rf不起作用,它对我也有用。

答案3

隐藏文件

您可能有隐藏文件。您可以通过以下方式找到它们,ls -la以确保您确实可以先删除它们。然后您可以在运行之前rm -rrmdir根据需要删除这些文件。

强制递归删除

rm -rf即使目标目录包含文件,您也可以强制递归删除。所有常见的警告都适用,但无论您的目录包含什么,它都会完成工作——当然,只要您有权删除文件和目录。

答案4

当您在 torrent 客户端中播种文件时也可能会发生这种情况。只需确保关闭 torrent 客户端,或删除种子种子即可。

相关内容