一、du 命令基础
du(Disk Usage)命令是 Linux/Unix 系统中用于估算文件和目录磁盘使用情况的实用程序。它通过递归遍历目录结构,计算每个文件和子目录占用的磁盘空间,并以块为单位(默认情况下)显示结果。
基本语法
|
1 |
|
如果不指定文件或目录,du 会默认统计当前目录及其所有子目录的磁盘使用情况。
为什么需要 -h 选项?
原始的 du 命令输出以磁盘块为单位(通常 1 块=512 字节或 1KB),这种表示方式对人类阅读不够友好。例如:
|
1 |
|
可能输出:
|
1 2 3 |
|
这样的数字难以直观理解。-h(human-readable)选项的出现解决了这个问题,它会自动选择最合适的单位(KB、MB、GB 或 TB)来显示大小:
|
1 |
|
输出变为:
|
1 2 3 |
|
二、du -h 命令详解
输出解读
du -h 的典型输出包含多行信息:
- 子目录行:显示每个子目录的大小和路径
- 总计行(最后一行):显示指定目录的总大小
例如:
|
1 2 3 |
|
这里:
data/subdir1占用 4.0KBdata/subdir2占用 8.2MB- 整个
data目录占用 1.2GB
常用选项组合
-s(汇总):仅显示总大小,不显示子目录详情
|
1 |
|
输出:
|
1 |
|
-c(总计):在最后添加一个总计行
|
1 |
|
输出:
|
1 2 3 4 |
|
--max-depth=N:控制显示的目录深度
|
1 |
|
只显示 data 下第一级子目录的大小
三、du 与其他命令的对比
du vs df
du(Disk Usage):从文件系统角度计算文件和目录占用的空间df(Disk Free):显示文件系统的整体磁盘使用情况
du 更适合查找具体目录或文件占用的空间,而 df 更适合查看整个磁盘或分区的使用情况。
du vs ls -l
ls -l显示的是文件的实际大小(逻辑大小)du显示的是文件占用的磁盘空间(可能因块分配而大于实际大小)
例如,一个 1 字节的文件:
ls -l显示 1 字节du可能显示 4KB(取决于文件系统的块大小)

1万+

被折叠的 条评论
为什么被折叠?



