介绍
du命令主要是用来查询文件或文件夹的占用大小。
参数
指令 | 指令说明 | 备注 |
-0;--null | 不换行打印当前目录及其目录的占用大小 | |
-a;--all | 打印目录及其子目录下的所有文件占用大小 | |
-b;--bytes | 打印当前目录及其目录的占用大小,单位以bytes显示 | |
--block-size=? | 打印目录及子目录的占用大小,单位以块显示 | ?代表块大小 |
-c;--total | 打印显示所有目录的总计 | 通常用于统计一组文件的使用总和。 |
-D;--dereference-args | 打印软链接引用文件或目录的占用大小。 | |
-H | 打印软链接引用文件或目录的占用大小。 | 与-D;--dereference-args作用一致 |
-h;--human-readable | 为打印的结果附加单位 | 附加单位会根据文件大小去附加。 |
-k;--kilobytes | 打印目录及子目录的占用大小,单位以KB显示 | |
-L;--dereference | 打印软链接引用文件或目录的占用大小。 | |
-l;--count-links | 打印软链接本身的占用大小。 | |
-m | 打印目录及子目录的占用大小,单位以MB显示 | |
-P;--no-dereference | 不遵循任何符号链接 | |
-S;--separate-dirs;--si | 打印目录及其子目录的大小,当前目录的大小类似于-h,但幂是以1000而不是1024。 | 个人觉得不会有人使用这个指令。 |
-s;--summarize | 仅打印目录或文件夹的大小 | |
--help | 打印du命令帮助信息 | |
--version | 打印du版本信息 |
使用案例
案例使用/usr/local/src目录,该目录下有以下目录和文件:
- dump
- dump1
- adb.txt
- abc.txt
-0;--null的使用
[root@localhost src]# du -0
从上图中可以看到,显示的只有dump和dump1的目录使用情况,对于文件的占用大小是不会统计的。
-a;--all的使用
[root@localhost src]# du -a
从上图中可以看到,显示的是当前目录下的所有文件(目录)占用情况(占用大小)。
-b;--bytes的使用
[root@localhost src]# du -b
从上图中可以看到,显示的是当前目录下的所有目录的占用情况(占用大小)。
--block-size=?的使用
为了验证以块的大小来显示文件大小,我这里在/usr/local/src目录下创建一个10MB的文件,然后使用标准块4096来进行测试。
[root@localhost src]# du --block-size=4096
从上图中可以看到,显示的是当前目录下所有文件的占用情况(占用大小),单位是以数据块来统计。
-c;--total的使用
通常使用在多个文件统计占用大小的情况。
[root@localhost src]# du -c
从上图中可以看到,显示的是当前目录下所有文件的占用情况(占用大小),并在其后面追加总使用量。
统计多个文件
[root@localhost src]# du -c abc.txt aaa
从上图可以看出,使用-c指令在统计多个文件时能直接显示出总使用量。
-D;--dereference-args的使用
为了验证-D指令的作用,临时在/usr/local目录下创建了一个100MB的bbb文件,并且在/usr/local/src目录下创建了软链接bbb。
[root@localhost src]# du -D
从上图中没法验证出实际-D的作用,于是我又在/usr/local目录下创建了一个eee的目录,并在其目录下创建了一个fff的目录和10MB大小的ggg文件。做完这些后,在/usr/local/src目录下创建了同名(eee)的软链接之后,再次验证。
[root@localhost src]# du -D
从上图中,就看出不一样的地方了。没有加-D的,仅会统计软链接本身的占用大小,而加了-D指令后,统计的是软链接引用的文件或目录的占用大小。
-H的使用
[root@localhost src]# du -H
从上图可以看到,该-H的指令跟-D;--dereference-args一样,都是统计软链接引用的文件或目录的占用大小。
-h;--human-readable的使用
为了验证不同大小的文件,再次创建4KB的ccc和2GB的ddd文件。创建后,再次验证。
[root@localhost src]# du -ah
从上图中能够看到,使用了-h指令后,它就会根据文件的大小去追加对应的单位,来让我们能更加清晰的看到占用情况。
-k;--kilobytes的使用
[root@localhost src]# du -k
从上图能够看到,使用了-k指令后,打印会使用KB作为单位输出。
-L;--dereference的使用
[root@localhost src]# du -L bbb
从上图看到,使用了-L指令后,也会统计软链接引用的目录或文件大小。
-l, --count-links的使用
[root@localhost src]# du -l eee
从上图可以看到,使用了-l指令后,仅会统计软链接本身的大小。
-m的使用
[root@localhost src]# du -m
从上图可以看到,使用了-m指令后,打印会以MB为单位来显示。
-P;--no-dereference的使用
[root@localhost src]# du -P eee
从上图再结合help帮助来看,-P指令是不配置(遵循)任何符号链接,并且是默认配置。
-S, --separate-dirs的使用
[root@localhost src]# du -S
从上图看,-S指令仅会作用于当前文件夹(目录),类似于-h,但使用的幂是1000而不是1024。
-s;--summarize的使用
[root@localhost src]# du -s
从图上看,-s指令仅打印指定目录或文件的占用大小。若无指定目录或文件,则打印当前目录的总占用大小。
--help的使用
通过此指令就可以查看du命令的使用文档。
[root@localhost src]# du --help
--version的使用
通过此指令就可以看到du命令的版本。
[root@localhost src]# du --version
评论区