一、du 命令简介
du
(Disk Usage)用于统计文件和目录的磁盘使用情况,默认以 KB 为单位显示。它是排查磁盘空间问题的利器。
二、基础用法
1. 查看当前目录的磁盘使用情况
du
- 显示当前目录下每个子目录的大小(KB)。
2. 人类可读格式(自动转换单位)
du -h
# 示例输出:
# 4.0K ./Documents
# 8.0M ./Downloads
3. 查看指定目录/文件的大小
du -h /path/to/directory_or_file
4. 仅显示总大小(不显示子目录)
du -sh /path/to/directory
-s
:仅显示总计。-h
:人类可读格式。
三、高级用法
1. 显示目录及其子目录的详细大小
du -h --max-depth=1 /path
--max-depth=N
:限制显示的目录层级(如1
表示只显示一级子目录)。
2. 排除特定文件或目录
du -h --exclude="*.log" /path
--exclude="PATTERN"
:按通配符排除文件/目录。
3. 按文件大小排序
du -h /path | sort -h
sort -h
:按人类可读的单位(K, M, G)排序。
4. 显示所有文件(包括隐藏文件)
du -ah /path
-a
:显示所有文件(默认只显示目录)。
5. 显示磁盘使用总计
du -ch /path
-c
:最后输出总计。
6. 仅显示超过指定大小的目录
du -h --threshold=100M /path
--threshold=SIZE
:过滤显示大于SIZE
的条目。
7. 显示文件的“表观大小”(实际大小)
du -h --apparent-size /path
--apparent-size
:显示文件实际大小(而非占用的磁盘块大小)。
8. 结合时间筛选
du -h --time /path
--time
:显示文件的最后修改时间。
四、实用场景示例
1. 快速找出大文件/目录
du -h / | sort -hr | head -n 20
- 扫描根目录,按大小降序排列,显示前20个结果。
2. 统计日志目录总大小
du -sh /var/log
3. 排除缓存目录后统计
du -sh --exclude=/path/cache /path
五、注意事项
权限问题:若目录无权访问,使用
sudo
:sudo du -sh /root
- 性能影响:扫描大型目录(如
/
)可能较慢,建议结合--max-depth
限制层级。 du 与 df 的区别:
du
:统计文件/目录的实际磁盘使用量。df
:统计文件系统的整体磁盘使用情况(更快速,但可能因挂载点导致统计差异)。
通过灵活组合参数,du
能帮助您高效定位磁盘空间占用问题。建议通过 man du
查看完整手册。