Linux 排查大文件, 两步搞定

287 阅读2分钟

Linux 排查大文件, 两步搞定

展示两个常用命令的用法、示例与注意事项。


1. 查看根目录下各一级目录大小(升序)

du -sh /* 2>/dev/null | sort -h

用途:快速查看哪个一级目录占用空间最多,定位要深入排查的子树。
参数说明

  • du -s:仅显示每个条目的总计。
  • -h:可读(K/M/G)。
  • 2>/dev/null:屏蔽因无权限导致的错误信息。
  • sort -h:按人类可读数值排序(升序)。如需 降序,改为 sort -hr

示例输出

4.0K    /dev
16K     /bin
120M    /boot
1.5G    /var
8.2G    /usr
20G     /home

2. 查找大文件(>500MB),并显示详细信息

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:屏蔽无权限访问的错误。
    示例输出
-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

重要注意事项(三点)

  1. 权限与速度:从 / 搜索可能很慢并且会遇到权限问题。必要时在具体挂载点(如 /var/home)运行或使用 sudo
  2. 已删除但仍占用空间:如果删除文件后空间未释放,可能是进程仍持有文件句柄;用 lsof -nP +L1 查找并重启/杀进程释放空间。
  3. 操作前先备份:删除或截断大文件前先确认用途并备份(特别是数据库与日志文件),避免影响服务。

小结

  • du -sh /* 2>/dev/null | sort -h 快速定位哪个一级目录占空间
  • find / -type f -size +500M -exec ls -lh {} + 2>/dev/null 列出大文件并进一步处理。