如何处理删除文件后磁盘空间未被释放的问题

在磁盘空间即将耗尽的时候,需要清理一些文件。在找到需要删除的文件之后,如果直接使用 rm 删除文件,可能会发现删除文件后磁盘空间并没有被清理出来的情况。

这是由于刚刚删除的文件还在被某个进程打开,导致几时文件看起来被删除了,但仍然是打开状态,因此仍然会占用磁盘空间。

如果需要彻底清理出磁盘空间,可以通过 lsof | grep -i delete 查看这种“在打开状态下被删除了”的文件,会显示出这个文件正在被哪个进程所打开,只需要将进程 kill 掉,对应的文件空间就被释放出来了。

但如果由于某些原因,不能终止某个进程,还可以采用另一个折中一点的办法。使用 echo > foo(需要删除的文件) 将文件内容置空,同样可以达到清理磁盘空间的目标。