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


27

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

$ 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

谢谢!


3
您需要弄清楚正在那里安装FUSE文件系统的原因。在尝试删除目录之前mount | fgrep fuse,请尝试找到它并fusermount -u <mountpoint>卸载它。
CodeGnome 2012年

如何不挂载删除文件?
斯蒂芬·波士顿

Answers:


16

隐藏文件

您可能有隐藏文件。您可以找到它们,ls -la以确保完全可以先删除它们。然后,您可以在运行之前rm -rrmdir根据需要删除文件。

强制递归删除

rm -rf即使目标目录包含文件,您也可以强制执行递归删除。所有通常的警告都会应用,但是无论您的目录包含什么内容,只要您有权删除文件和目录,它都会完成工作。


1
此外,您还可以运行find DE.aspx_files -exec ls -la {} \;以识别隐藏文件或以特殊字符命名的文件。
蒂姆·肯尼迪

谢谢,我确定了罪魁祸首隐藏文件,可以将其删除,但会生成新的同级文件。请参阅我添加的部分。强制删除也不起作用,因为“目录不为空”。
蒂姆(Tim)

56

形式的文件.fuse_hidden*被创建FUSE文件系统文件时使用的地方被删除,但仍必须仍然有一个目录条目。这类似于.nfs*通过NFS导出的目录上的文件。

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

该名称是文件系统驱动程序为删除的文件发明的假名称。您无法删除该文件(或者,如果您创建该文件,它将以另一个名称重新出现)。您也不能删除该目录,因为它不是空的。您需要找到正在使用此文件的文件。被使用的最可能原因是某些应用程序打开了它。运行文件系统挂载点lsof /media/mount-point在哪里/media/mount-point,并在该目录中查找打开的文件。


6
这个答案是真正解决问题的答案
Martin Erhardt

谢谢,它有效。我使用了这个答案,看到了很多使用我的文件夹的东西。重新启动,然后尝试再次查看相同的列表-它为空。然后删除顺利进行。
Sevastyan

12

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

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

即使rm -rf没有用,它也对我有用。


1
是的,这可行。为什么?!但是,这些文件随后被扔进了垃圾箱,同样成问题。
斯蒂芬·波士顿

-1

如果在Mac上,也请注意* .localized文件,即使在FUSE文件系统上对'ls -la','find'及其类似文件也可能不可见。[这是在MacBook Pro上使用由ConnectedData Transporter创建的FUSE文件系统发现的。]


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.