温馨提示×

怎样在linux删除大文件

小樊
43
2026-10-13 09:46:51
栏目: 智能运维

在 Linux 下“删除大文件”通常不只是 rm 一下,还要考虑释放磁盘空间、避免误删、是否正在被进程占用等问题。下面按常见场景说明。


一、最常规的删除方式

rm 大文件

例如:

rm /data/bigfile.log

⚠️ 注意:

  • rm 不可恢复
  • 删除后若磁盘空间没释放,可能是文件仍被进程占用

二、删除正在被进程占用的大文件(很常见)

如果文件正在被程序写入(如日志),直接 rm 后:

df -h   # 空间没释放
lsof | grep deleted

正确做法

  1. 清空文件内容(推荐):
> /path/to/bigfile

或

truncate -s 0 /path/to/bigfile
  1. 再让程序重新生成或滚动日志

✅ 这样磁盘空间立刻释放,且不影响进程


三、快速释放空间(不删文件本身)

如果只是想腾空间:

: > bigfile

或

echo > bigfile

四、删除前确认大文件

查找大于 1G 的文件:

find / -type f -size +1G

按大小排序:

du -h /path | sort -rh | head

五、安全删除(防误删)

使用 trash(推荐)

trash-put bigfile

(需安装 trash-cli)


六、删除超大目录

rm -rf /path/to/bigdir

如果卡死,可分批删:

find /path/to/bigdir -type f -delete

七、删除后空间未释放的排查

lsof | grep deleted

找到占用进程后:

  • 重启进程
  • 或清空文件

八、极端情况(磁盘满导致无法操作)

rm -f /var/log/*.log

或

find /var/log -type f -size +500M -delete

如果你愿意,可以告诉我:

  • 文件大小
  • 是否在被程序使用
  • 文件系统(ext4 / xfs / overlay)

我可以给你最安全的具体命令。

0 踩