du
du(disk usage)用于显示文件或目录的磁盘空间使用情况,会递归统计目录下所有文件的大小并显示。
du [选项] [文件或目录]- 如果不指定文件或目录,默认统计当前目录及其子目录
- 输出通常以**块(block)**为单位,块的大小默认为 1K
输出格式为:
<磁盘块数量> <文件或目录路径>| 选项 | 作用 |
|---|---|
-h |
以人类可读的方式显示大小(自动转换为 KB、MB、GB 等) |
-s |
只显示指定文件或目录的总大小,不列出子文件/子目录的详细大小 |
-a |
显示所有文件和目录的大小(默认只显示目录的大小,不单独列出文件) |
-c |
显示所有指定文件或目录的大小之和 |
-d <N> |
显示指定深度的目录大小(N 是层级深度) |
--max-depth=N |
与 -d 类似,限制输出的目录层级,N=0 时等价于 -s |
-k |
以 KB 为单位显示大小 |
-m |
以 MB 为单位显示大小 |
--time |
显示文件或目录的最后修改时间 |
--exclude=PATTERN |
排除匹配 PATTERN 的文件或目录 |
1. 显示当前目录及所有子目录磁盘使用情况
du输出:
4 ./hw12 ./ex20 .单位是磁盘块数量,磁盘块大小默认为 1K。
2. 以人类可读方式显示当前目录大小
du -h输出:
4.0K ./hw12K ./ex20K .3. 只显示当前目录总大小,不显示子目录详情
du -sh输出:
20K .4. 显示指定目录的所有文件和目录大小
du -ah ~/exercises/c/test输出:
16K /home/bdathe/exercises/c/test/a.out4.0K /home/bdathe/exercises/c/test/ex.c4.0K /home/bdathe/exercises/c/test/hello.c28K /home/bdathe/exercises/c/test5. 显示当前目录深度为 1 的文件夹大小(即只看第一层子目录)
du -h --max-depth=1输出:
4.0K ./hw12K ./ex20K .6. 显示多个目录的大小并显示总计
du -ch hw/ ex/输出:
4.0K hw/12K ex/16K total7. 排除指定目录,查看当前目录大小
du -h --exclude=hw输出:
12K ./ex16K .man du- GNU coreutils - du