直接用 du -sh /* 2>/dev/null | sort -hr 可快速列出根目录下所有一级子目录大小排行,按GB/MB/K单位从大到小排序,高效定位空间占用“大户”,避免递归扫描卡顿或权限报错。

直接用 du -sh /* 2>/dev/null | sort -hr 就能快速看到根目录下各一级子目录的大小排行,结果按从大到小排列,单位易读(G、M、K),不卡顿、不报错。
只看一级目录,高效定位“大户”
刚发现 df -h 显示 / 使用率飙升时,没必要立刻递归扫全盘。优先执行:
- sudo du -sh /* 2>/dev/null | sort -hr —— 扫描 / 下所有一级目录(如 /var、/home、/usr)
- 若目标明确(比如怀疑 /var 吃空间),改用 sudo du -sh /var/* 2>/dev/null | sort -hr
- 想包含隐藏目录(如 /.config),加 du -sh /.* /* 2>/dev/null | grep -v '/\.\.' | sort -hr
深入某目录,查它的子目录排行
锁定大目录后(例如 /var 占了 30G),进入并继续分层排查:
- cd /var && sudo du -sh * 2>/dev/null | sort -hr —— 查 /var 下各子目录(/var/log、/var/lib 等)
- 加 --max-depth=1 效果相同,但 /* 展开更快,尤其在大量小目录时
- 若输出混乱或缺行,说明有权限拒绝路径干扰,务必保留 2>/dev/null
找真正的大文件,别被目录总和掩盖
目录大小是其下所有内容之和,但你要删的往往是单个几百 MB 的日志或 core 文件。这时得绕过目录统计,直击文件:
- find /var/log -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -hr -k5 | head -n 10
- -size +100M 先过滤,避免把成千上万个 KB 文件拖进排序
- -k5 指按 ls -lh 输出的第 5 列(即文件大小)排序,稳定可靠
交互式钻取:ncdu 更直观,但要避开陷阱
适合人工核查复杂结构(比如 /home/user/.cache 下嵌套几十层),支持方向键进入、回车展开、d 键删除:
- 安装:sudo apt install ncdu(Debian/Ubuntu)或 sudo yum install ncdu(RHEL/CentOS)
- 启动:ncdu --exclude /proc --exclude /sys --exclude /dev / —— 必须排除虚拟文件系统,否则卡死或报错
- 只查用户区?直接 ncdu /home,省时省资源











