正确命令是 du -sh,其中 -s 表示汇总、-h 表示人类可读;du -sh */ 只统计子目录,配合 sort -hr 可按大小倒序排列,加 --exclude 或 head -n 10 等可进一步筛选。

Linux 中没有 du-sh 这个命令,你可能是想用 du -sh ——这是查看目录磁盘占用最常用、最有效的组合。
确认命令写法:du -sh 而不是 du-sh
du 是 “disk usage” 的缩写,-s 表示汇总(summarize),只显示每个指定目录的总大小;-h 表示 human-readable,以 KB/MB/GB 等易读单位显示。连起来就是:
du -sh * —— 显示当前目录下**所有子文件夹和文件**的大小(注意:* 会同时列出文件,不纯是文件夹)
du -sh */ —— 更精准,只匹配以 / 结尾的**子目录**(排除普通文件)
只看子目录(排除文件和隐藏目录)
如果只想看非隐藏的子文件夹(如 docs/、src/,但不包括 .git/ 或 .config/),推荐:
-
du -sh --max-depth=1 */ | sort -hr——--max-depth=1确保不递归进子子目录;sort -hr按人类可读大小倒序排列(最大的在前) - 若想彻底排除隐藏项(点开头的目录),可用:
du -sh */ | grep -v '/\.' | sort -hr
补充实用技巧
- 加
--exclude="node_modules"可跳过常见大目录:du -sh --max-depth=1 */ --exclude="node_modules" | sort -hr - 想看前 10 个最大目录?接上
| head -n 10 - 需要更详细统计(如含子目录数量、最大单文件)?可配合
ncdu(需安装:sudo apt install ncdu或brew install ncdu),交互式界面更直观
记住核心:用 du -sh */,不是 du-sh;加 sort -hr 让结果一目了然。不复杂但容易忽略斜杠和空格细节。


















