linux使用rm命令删除的文件还占用空间吗

来源:站长论坛作者:北京SEO公司头衔:草根站长
导读:本期聚焦于小伙伴创作的《linux使用rm命令删除的文件还占用空间吗》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《linux使用rm命令删除的文件还占用空间吗》有用,将其分享出去将是对创作者最好的鼓励。

在linux系统中,使用rm命令删除文件时,系统默认只是删除了文件对应的目录项,也就是文件在目录中的索引记录,并没有直接清除文件实际存储在磁盘上的数据块,因此很多时候删除文件后磁盘空间不会立刻释放。

linux使用rm命令删除的文件还占用空间吗

为什么rm删除文件后空间可能不释放

linux的文件系统中,文件的数据存储由两部分组成:目录项(记录文件名和inode的对应关系)和inode对应的数据块(实际存储文件内容)。当进程打开了某个文件时,会持有该文件的句柄,只要进程没有关闭这个文件,即使使用rm删除了目录项,inode和数据块的引用计数不会归零,系统就不会回收这些数据块占用的空间。

常见占用空间未释放的场景

  • 正在运行的服务或进程打开了目标文件,比如日志文件被应用持续写入,删除后应用没有重启,句柄一直存在。
  • 删除的是大文件,进程短时间内不会释放句柄,空间就会持续显示被占用。
  • 删除的文件存在硬链接,rm只删除了其中一个硬链接,其他硬链接还存在,数据块不会被回收。

如何判断被删除的文件是否还在占用空间

可以通过lsof命令查看当前系统中被删除但仍在被进程占用的文件,具体命令如下:

# 查看所有被删除但仍被进程占用的文件
lsof | grep deleted

执行命令后会输出类似下面的内容:

nginx     1234  root  10w   REG  8,1  1073741824  123456 /var/log/nginx/access.log (deleted)

上述输出表示nginx进程(PID为1234)打开的/var/log/nginx/access.log文件已经被删除,但是进程还在持有该文件的句柄,文件大小是1073741824字节,也就是1GB,这部分空间暂时不会释放。

如何释放rm删除后未释放的空间

方法一:重启占用进程

找到占用被删除文件的进程后,重启对应的进程即可让进程关闭文件句柄,系统会自动回收对应的数据块空间。比如上面的nginx进程,重启命令如下:

# 重启nginx服务
systemctl restart nginx

方法二:清空文件内容而不删除文件

如果是日志类文件,不想重启进程,也可以先清空文件内容,再删除文件,这样空间会立刻释放。操作步骤如下:

# 先清空被删除的文件(通过/proc/PID/fd/文件描述符操作)
echo "" > /proc/1234/fd/10
# 再执行删除操作
rm /var/log/nginx/access.log

其中1234是进程PID,10是lsof命令输出中对应的文件描述符编号。

rm命令删除文件的空间释放总结

rm命令本身不会直接释放文件占用的磁盘空间,只有当文件的所有引用(目录项、进程句柄)都被清除后,空间才会被回收。日常使用中如果需要删除正在被进程使用的文件,建议先确认进程状态,选择合适的方式操作,避免磁盘空间异常占用的问题。

操作场景空间释放情况处理方式
删除未被任何进程打开的文件立刻释放直接执行rm命令即可
删除被进程打开的文件暂不释放重启进程或清空文件内容
删除存在多个硬链接的文件仅删除当前硬链接,空间不释放删除所有硬链接后空间释放

rm_commandlinux文件空间释放文件句柄修改时间:2026-06-25 21:36:36

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。