du -sh 是最直接可靠的方式,精确返回文件系统实际磁盘占用(含隐藏文件和资源分叉),支持 --max-depth、sort -hr、--exclude 等高效排查大目录及过滤干扰项。
终端里用 du -sh 是最直接、最可靠的方式,它返回的是文件系统实际占用的磁盘空间,精确到字节级,含隐藏文件和资源分叉,不受缓存或元数据影响。
查单个文件夹总大小
只需一条命令就能得到最终数值:
- 打开终端,输入:
du -sh ~/Downloads(把路径换成你要查的,比如~/Desktop或/Applications) -
-s表示只显示总计,不展开子目录细节 -
-h表示用 KB/MB/GB/TB 等易读单位,不加会输出纯字节数,难判断大小 - 结果类似
14.7G /Users/xxx/Downloads,第一列是真实磁盘占用
看当前目录下哪些子目录最占空间
适合快速定位“吃空间大户”,尤其在下载、文稿、Library 这类目录中排查:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 先进入目标目录,例如:
cd ~/Downloads - 运行:
du -sh --max-depth=1 | sort -hr - 这条命令统计当前层所有项目(含隐藏项如
.git),按大小从大到小排序 - 想只看前 10 名,加
| head -10;若要排除.和..,可追加| grep -v "^\.$\|^\.\.$"
深入某目录查看多级结构分布
当发现某个子目录特别大,想继续往下挖,又不想全量递归卡顿:
- 例如已知
~/Library/Caches很大,可运行:du -h --max-depth=2 ~/Library/Caches | sort -hr | head -15 -
--max-depth=2表示展开到二级子目录(如Caches/com.apple.Safari/Cache.db) - 先
du再sort -hr | head是高效组合,避免输出过长干扰判断 - 遇到权限提示(
Permission denied)不用停,只要结果里有有效行,说明可读部分已统计完成
过滤干扰项,聚焦关键内容
开发项目常含 node_modules、.git、.DS_Store 等大但无需关注的项:
- 加
--exclude跳过它们:du -sh --max-depth=1 --exclude="node_modules" --exclude=".git" . - 支持通配符,比如
--exclude="*.log"可忽略日志文件 - 末尾的
.表示当前目录,确保排除规则生效 - 想长期使用,可把常用命令设为别名,写进
~/.zshrc:

















