Linx文件删除了没有释放问题磁盘空间

共计 1144 个字符,预计需要花费 3 分钟才能阅读完成。

提醒:本文最后更新于2026-09-10 11:26,文中所关联的信息可能已发生改变,请知悉!

一、问题现象

磁盘下有个大文件占满了空间,删除后发现文件不见了,但是磁盘空间并没有释放。

问题原因

文件还被其他进程占用,调用rm后实际上还并没有真正删除,只有当文件解除占用后(引用计数变为0)才会释放掉这部分空间。

解决方案

使用lsof命令查看文件还在被哪个进程占用的,关闭进程接触解除占用:

过滤delete表示显示出文件已经被删除了,但是实际还被进程占有着没释放的文件。

二、场景模拟

通过以下代码模拟出进程占用文件场景,代码的作用是打开文件,然后睡眠100秒,最后结束退出:

编译,并在当前目录生成一个1G左右的文件用作测试:

然后执行程序,程序会卡住并睡眠100S。删除测试文件,查看磁盘空间发现没有被归还:

Linx文件删除了没有释放问题磁盘空间

使用lsof命令查看文件还在被占用,kill掉之后文件解除占用,空间被归还:

Linx文件删除了没有释放问题磁盘空间

正文完
 0