du 命令通过 --max-depth(或 -d)参数控制统计深度:0级仅总大小,1级列直接子项,2级展示三级结构,配合 sort -hr 和 head 可高效定位大目录。

用 du 按指定深度统计目录占用,核心是 --max-depth(或简写为 -d)参数。它能控制递归层级,避免输出过长,也便于分层定位空间大户。
只看当前目录总大小(深度 0)
这等效于加 -s 参数,适合快速确认整体用量:
du -sh --max-depth=0 /path/to/dir-
du -sh .(当前目录,效果相同)
只统计一级子目录和文件(深度 1)
最常用场景,列出当前目录下所有直接子项的大小,不深入内部:
du -sh --max-depth=1 /path/to/dir-
du -sh --max-depth=1 *(当前目录非隐藏项) -
du -sh --max-depth=1 .*/ */(含隐藏目录,如.git、.config)
查看两层结构(深度 2)
适用于想了解“目录 → 子目录 → 关键子子目录”三级分布的情况:
-
du -sh --max-depth=2 /var/log(看/var/log及其下各服务日志目录) -
du -sh --max-depth=2 ~/Downloads(查下载目录里各文件夹及其内层主目录)
配合排序快速找大项
单独用 --max-depth 得到原始数据,加上 sort -hr 和 head 才真正高效:
-
du -sh --max-depth=1 /home | sort -hr | head -10(查家目录下前 10 大子目录) -
du -sh --max-depth=1 /usr | sort -hr | head -5(聚焦系统级大块)











