用 du -h -d 1 | sort -hr 可直观查看当前目录下各一级子目录占用空间,单位自动换算,倒序排列;需先 cd 至目标根目录(如 /opt),排除干扰项可用 --exclude,提取前N个最大目录可配合 head 和 grep -v 过滤总计行。

直接用 du -h -d 1 就能查看当前目录下第一层子目录(即“业务目录”)各自占了多少空间,不进深层、不汇总父目录,结果清晰直观。
确认你在目标根目录下
比如你要查 /opt 下各业务模块的占用,先切换过去:
再运行命令。如果查的是 /srv 或 /var/www,也同理——必须先进入你想分析的顶层路径,-d 1 才会从那里开始算一级子项。
执行核心命令
运行以下命令:
du -h -d 1 | sort -hr-
-h:单位自动转为 K/M/G,人眼友好 -
-d 1:只统计当前目录下的直接子目录(如./app-api、./web-frontend),跳过它们内部的嵌套结构 -
| sort -hr:按大小倒序排列,最大的排最上面
输出类似:
24G ./billing-service18G ./user-center
8.2G ./auth-proxy
1.3G ./logs
101G .
最后一行的 101G . 是当前目录总和,可忽略或用 head -n -1 去掉。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
排除干扰项(可选但实用)
实际业务目录里常混着缓存、日志、临时文件等,想聚焦“主业务目录”,可以加排除:
du -h -d 1 --exclude='logs' --exclude='tmp' --exclude='.git' | sort -hr支持通配符,例如排除所有以 cache 结尾的目录:--exclude='*cache'。
快速提取前 N 个最大业务目录
比如只看前 5 个吃空间最多的业务:
du -h -d 1 | sort -hr | head -n 5注意:head -n 5 会包含末尾那个 XXG . 总计行。如需纯子目录,改用 head -n 6 | tail -n 5 或直接加 grep -v '^\s*[0-9.]\+[KMGTP] \.$' 过滤掉总计行。










