删除一个大文件并不会释放空间。

我删除了一个位于我的主目录中的大文件(6 GB),但可用空间没有增加。

我尝试通过输入cd ~/.local/share/Trash/files在垃圾箱文件夹中查找该文件,但它没有列出来。我尝试运行sudo apt-get clean,但问题没有解决。我还尝试了sudo lsof +L1以查看是否有其他进程正在使用它,但它也没有显示出来。

有人有什么建议吗?


文件叫什么名字?你能运行 sudo fdisk -l 吗? - nanofarad
你可以运行 df -lh 命令来查看包括可用空间在内的分区列表。即使文件是隐藏的(以点 . 开头),你也应该能在Nautilus垃圾箱中看到它。 - rosch
1@ObsessiveSSOℲ:文件名为output.file,位于主目录中。"fdisk -l"只是给出了每个分区的起始块和结束块。我不知道如何处理这些数据。 - Gaurav Mittal
@rosch:文件没有被隐藏(名称没有以点开头) - Gaurav Mittal
你可能正在尝试释放错误的分区空间。fdisk会告诉我哪个分区是有问题的。 - nanofarad
2个回答

该文件仍由一个或多个进程使用。只有当没有进程打开该文件时,文件占用的空间才会被释放。

这是日志文件常见的一种问题,当管理员忘记重新启动相关进程时,文件系统的空间会被填满。

您可以使用lsof | grep DEL命令来检查。


感谢您的回复。我不认为该文件在那个时候被其他进程使用。它是使用“truncate -s 10M output.file”创建的二进制文件,只是为了满足使用DC++所需的最低共享要求 :)。 - Gaurav Mittal
那你的问题是错的吗?你还没有删除文件,删除后你看到了空闲空间? - rosch
@rosch:我删除了文件,然后才发现有空间。不然我为什么会问这个问题呢? - Gaurav Mittal
1嗯,你的问题说的是相反的意思,“删除文件并不会释放空间”。所以我建议重新表达一下,甚至可以删除它。我在考虑后来阅读这个问题的人。 - rosch

我已经通过以下步骤解决了这个问题。
#lsof +L1

显示持有内存的文件列表,其中包含已删除引用。
请注意文件的进程ID(PID)。
终止该进程。
#kill <pid>

该进程将释放内存

通过命令进行检查

#df -h

救了我的一天,很惊讶没有人点赞这个答案。 - Bloodmoon
你也可以在这个链接中检查,我在回答同样的情况时更详细地解释了。@Bloodmoon https://stackoverflow.com/questions/332629/rm-not-freeing-diskspace/48945282#48945282 - Javeed Shakeel