跳转到内容

du

du(disk usage)用于显示文件或目录的磁盘空间使用情况,会递归统计目录下所有文件的大小并显示。

Terminal window
du [选项] [文件或目录]
  • 如果不指定文件或目录,默认统计当前目录及其子目录
  • 输出通常以**块(block)**为单位,块的大小默认为 1K

输出格式为:

Terminal window
<磁盘块数量> <文件或目录路径>
选项 作用
-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. 显示当前目录及所有子目录磁盘使用情况

Terminal window
du

输出:

Terminal window
4 ./hw
12 ./ex
20 .

单位是磁盘块数量,磁盘块大小默认为 1K。

2. 以人类可读方式显示当前目录大小

Terminal window
du -h

输出:

Terminal window
4.0K ./hw
12K ./ex
20K .

3. 只显示当前目录总大小,不显示子目录详情

Terminal window
du -sh

输出:

Terminal window
20K .

4. 显示指定目录的所有文件和目录大小

Terminal window
du -ah ~/exercises/c/test

输出:

Terminal window
16K /home/bdathe/exercises/c/test/a.out
4.0K /home/bdathe/exercises/c/test/ex.c
4.0K /home/bdathe/exercises/c/test/hello.c
28K /home/bdathe/exercises/c/test

5. 显示当前目录深度为 1 的文件夹大小(即只看第一层子目录)

Terminal window
du -h --max-depth=1

输出:

Terminal window
4.0K ./hw
12K ./ex
20K .

6. 显示多个目录的大小并显示总计

Terminal window
du -ch hw/ ex/

输出:

Terminal window
4.0K hw/
12K ex/
16K total

7. 排除指定目录,查看当前目录大小

Terminal window
du -h --exclude=hw

输出:

Terminal window
12K ./ex
16K .