译自 How to Get the Size of a Directory in Linux,补充整理来源于网络

1. du 命令简介

du命令为disk usage的缩写,是一个计算磁盘上目录或文件占用空间的工具,它可以用来显示文件系统上的目录、单个/多个文件所占用的磁盘空间

这与df命令有所不同df命令用来显示每个文件系统的磁盘使用量以及可用量的信息

2. 查看目录占用空间总大小

> du -csh /var /kvm
5.3G    /var
7.5G    /kvm
13G    total

参数释义

  • -c--total:最后打印所有参数目录的空间占用大小总和
  • -s--summarize:仅打印各参数目录的空间占用大小总和不打印其子目录
  • -h--human-readableKMG为单位显示空间占用大小

3. 查看一级子目录占用空间大小

> du -shc /var/*

0    /var/account
0    /var/adm
2.0G    /var/cache
0    /var/crash
8.0K    /var/db
0    /var/empty
0    /var/games
0    /var/gopher
0    /var/kerberos
3.1G    /var/lib
0    /var/local
0    /var/lock
180M    /var/log
0    /var/mail
0    /var/nis
0    /var/opt
0    /var/preserve
0    /var/run
45M    /var/spool
0    /var/target
32K    /var/tmp
0    /var/yp
5.3G    total

或者:

> du -h --max-depth=1 /var

32K    /var/tmp
3.1G    /var/lib
180M    /var/log
0    /var/adm
2.0G    /var/cache
8.0K    /var/db
0    /var/empty
0    /var/games
0    /var/gopher
0    /var/local
0    /var/nis
0    /var/opt
0    /var/preserve
45M    /var/spool
0    /var/yp
0    /var/kerberos
0    /var/crash
0    /var/target
0    /var/account
5.3G    /var

4. 查看目录使用空间大小

添加--apparent-size参数

> du -sh /var
5.3G    /var

> du -sh --apparent-size /var
5.2G    /var

du命令还可以通过管道与其他命令结合使用,例如以下命令将打印/var目录下占用空间最大的前 5 个目录

> du -h /var/ | sort -rh | head -5

5.3G    /var/
3.1G    /var/lib
2.8G    /var/lib/docker/overlay2
2.8G    /var/lib/docker
2.0G    /var/cache/yum/x86_64/7

参考文章

  1. How to Get the Size of a Directory in Linux
  2. du 命令 | dslztx
  3. Ext文件系统中,文件的“占用大小”和“使用大小” | dslztx
  4. Linux 的 du 命令 | 51CTO