Linux 排查大文件, 两步搞定
展示两个常用命令的用法、示例与注意事项。
1. 查看根目录下各一级目录大小(升序)
shell
du -sh /* 2>/dev/null | sort -h
用途 :快速查看哪个一级目录占用空间最多,定位要深入排查的子树。
参数说明
du -s
:仅显示每个条目的总计。-h
:可读(K/M/G)。2>/dev/null
:屏蔽因无权限导致的错误信息。sort -h
:按人类可读数值排序(升序 )。如需 降序 ,改为sort -hr
。
示例输出
bash
4.0K /dev
16K /bin
120M /boot
1.5G /var
8.2G /usr
20G /home
2. 查找大文件(>500MB),并显示详细信息
bash
find / -type f -size +500M -exec ls -lh {} + 2>/dev/null
用途 :从根开始查找超过 500MB 的普通文件,显示权限、拥有者、大小、修改时间与路径。
参数说明
find / -type f -size +500M
:匹配大于 500MB 的文件。-exec ls -lh {} +
:对每个匹配文件执行ls -lh
(逐个显示详细信息)。2>/dev/null
:屏蔽无权限访问的错误。
示例输出
bash
-rw-r--r-- 1 root root 1.2G Apr 10 12:00 /var/log/huge.log
-rw-r--r-- 1 mysql mysql 3.5G Jun 02 03:21 /var/lib/mysql/ibdata1
-rw-r--r-- 1 user user 700M Jul 15 09:10 /home/user/video.mov
重要注意事项(三点)
- 权限与速度 :从
/
搜索可能很慢并且会遇到权限问题。必要时在具体挂载点(如/var
、/home
)运行或使用sudo
。 - 已删除但仍占用空间 :如果删除文件后空间未释放,可能是进程仍持有文件句柄;用
lsof -nP +L1
查找并重启/杀进程释放空间。 - 操作前先备份:删除或截断大文件前先确认用途并备份(特别是数据库与日志文件),避免影响服务。
小结
- 用
du -sh /* 2>/dev/null | sort -h
快速定位哪个一级目录占空间 - 用
find / -type f -size +500M -exec ls -lh {} + 2>/dev/null
列出大文件并进一步处理。