温馨提示×

如何删除linux 大文件

小樊
33
2026-08-13 16:05:04
栏目: 智能运维

在 Linux 中删除“大文件”通常很简单,但如果你是想安全、快速、或避免误删,可以按下面几种场景来操作。


一、直接删除大文件(最常用)

1️⃣ 删除单个大文件

rm 大文件名

示例:

rm bigfile.log

2️⃣ 强制删除(忽略提示)

rm -f bigfile.log

3️⃣ 删除多个大文件

rm file1 file2 file3

或使用通配符:

rm *.log

二、先找到大文件,再删除(推荐)

1️⃣ 查找占用空间最大的文件

du -ah / | sort -rh | head -20

或只查文件(不查目录):

find / -type f -size +500M

查找大于 500MB 的文件


2️⃣ 按大小排序查看

ls -lhS

三、删除正在被进程占用的大文件(重点)

⚠️ 很多“删了但空间没释放”的问题都出在这里

场景

  • 文件被删除
  • 但程序仍在运行
  • 磁盘空间未释放

解决方法

1️⃣ 查看被删除但未释放的文件

lsof | grep deleted

2️⃣ 重启占用进程(推荐)

systemctl restart 服务名

或 kill:

kill -9 PID

✅ 进程退出后,磁盘空间才会真正释放


四、清空大文件(而不是删除)

如果你不能删除文件(如日志正在写入),可以:

1️⃣ 清空内容(保留文件)

> bigfile.log

或:

truncate -s 0 bigfile.log

✅ 不会中断程序
✅ 空间立即释放


五、删除前确认(防止误删)

1️⃣ 先查看

ls -lh bigfile.log

2️⃣ 使用交互删除

rm -i bigfile.log

六、使用 root 权限删除

sudo rm -f /path/to/bigfile

七、删除目录中的大文件

rm -rf 目录名

⚠️ 慎用 -rf


八、常见错误 & 解决

❌ 删了文件但磁盘没释放

✅ 原因:文件仍被进程占用
✅ 解决:lsof | grep deleted

❌ 权限不足

sudo rm 文件名

❌ 文件太大,rm 很慢

✅ 可先 truncate 再 rm


九、示例:安全删除大日志文件

du -sh /var/log/*
> /var/log/nginx/access.log

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

  • 文件类型(日志 / 数据库 / 备份)
  • 是否正在运行
  • 系统版本(CentOS / Ubuntu / Debian)

我可以给你最合适、最安全的删除方案

0