du
统计文件和目录的磁盘使用量,快速定位占用空间的大目录
语法
du [options] [file/directory]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-h |
人类可读格式(KB/MB/GB) | |
常用 |
-s |
只显示总计(不列出子目录) | |
常用 |
-d |
限制显示深度 | |
常用 |
--max-depth |
等同于 -d,限制递归深度 | |
常用 |
-a |
显示所有文件(不只是目录) | |
常用 |
-c |
显示总计 | |
常用 |
示例
查看当前目录下各项大小
du -sh *
查看日志目录总大小
du -sh /var/log/
找出根目录下最大的 10 个目录
du -h --max-depth=1 / 2>/dev/null | sort -hr | head -10
找出当前目录下最大的 20 个文件和目录
du -ah . | sort -hr | head -20
查看 node_modules 占用空间
du -sh node_modules/
技巧
- du -sh * | sort -hr 快速找出大目录
- 磁盘满了的排查流程:df -h 看哪个分区满 -> du -sh /* 逐层定位
- ncdu 是交互式的 du 替代,可以浏览和删除
- du 统计的是实际磁盘占用,ls -l 显示的是文件大小,两者可能不同