du -sh 是 macOS 和 Unix/Linux 系统中查看目录磁盘占用最常用命令,-s 显示合计大小,-h 以易读格式(如 2.4G)输出;加 --max-depth=1 可统计一级子目录并配合 sort -hr 快速定位大目录。

du -sh 是 macOS(以及大多数 Unix/Linux 系统)中查看目录磁盘占用最常用、最直接的命令。它能快速告诉你某个路径占用了多少空间,单位自动适配(K、M、G),适合日常排查“哪个文件夹吃掉了我硬盘”。
基础用法:查单个目录总大小
直接在终端运行:
du -sh /path/to/directory
例如:
du -sh ~/Downloads —— 查看当前用户下载文件夹总大小
du -sh /Applications —— 查看应用程序目录总占用
注意:
• -s 表示“summary”,只显示该路径的合计大小,不递归列出子目录;
• -h 表示“human-readable”,以易读格式(如 2.4G、156M)显示;
• 路径末尾加不加斜杠(/)不影响结果。
进阶技巧:快速定位大目录
如果想查某个目录下**各子目录分别占多少空间**(比如想找出 Downloads 里哪个文件夹最占地方),可加 --max-depth=1:
du -sh --max-depth=1 ~/Downloads | sort -hr
说明:
• --max-depth=1 限制只统计一级子目录(不深入子子目录);
• sort -hr 按人类可读数值逆序排序(最大的排最前);
• 这样一眼就能看到前几大的子项,高效定位“空间杀手”。
常见问题与避坑提醒
• 权限不足报错? 某些系统目录(如 /private/var/folders)需要管理员权限才能读取。可加 sudo,但要谨慎使用:
sudo du -sh /var/log
• 结果明显偏小? 可能是路径写错了,或目标是符号链接(默认不跟随)。如需统计链接指向的真实内容,加 -L:
du -shL ~/Desktop/MyBackup
• 卡住不动? 可能遇到挂载点(如外接硬盘、网络盘)或特殊文件系统。可加 --one-file-system 跳过其他挂载点,避免卡死:
du -sh --one-file-system ~/Documents
替代方案:图形化辅助参考
命令行高效,但对新手不够直观。macOS 自带的 “访达” → “前往” → “前往文件夹” → 输入 ~/Library/Caches,然后右键 → “显示简介”,也能看到大小(但不含子目录明细)。更推荐搭配工具如 DaisyDisk 或开源的 ncdu(需 brew install ncdu)进行交互式浏览,支持键盘导航和可视化扇形图。

















