一、常用用法
1 | du --apparent-size -sh 文件路径(文件可以是目录,也可以是一般文件) |
二、含义与选项
2.1、含义
当文件为“一般文件”时,计算该文件的“使用大小”;当文件为“目录”时,计算“该目录自身的占用大小+目录下所有子文件(递归进行)的大小”之和。递归计算时,“一般文件”的大小还是“使用大小”,“目录”的大小还是“占用大小”(关于文件的“使用大小”和“占用大小”可见《Ext文件系统中,文件的“占用大小”和“使用大小”》)。
2.2、选项
“–apparent-size”:加上该选项,计算时,“一般文件”的大小为“使用大小”,“目录”的大小为“占用大小”。
“-s”:当“du”命令的操作对象是一个目录时,不打印该目录下子文件的大小,只打印目录总大小。
“-h”:以人类可读形式打印文件大小。
三、其他
3.1、“du”命令的按字节统计工作方式
加上“–block-size=1”选项,可使用“du”命令的按字节统计工作方式。
3.1.1、一般文件
有一个一般文件“file.md”,分别执行ls -l file.md
和du --apparent-size --block-size=1 file.md
命令,得到如下两个执行结果,可知两个计算文件大小的命令结果一致。
1 | -rw-rw-r-- 1 dsl dsl 34998 12月 22 21:32 file.md |
1 | 34998 file.md |
3.1.2、目录
有一个空目录“sizedir”,分别执行ls -l
和du --apparent-size --block-size=1 sizedir
命令,得到如下两个执行结果,可知两个计算文件大小的命令结果一致。
1 | drwxrwxr-x 2 dsl dsl 4096 12月 22 22:49 sizedir |
1 | 4096 sizedir |
3.2、加上“h”选项后的计算误差
跟《ls命令》文章内“三、其他”小节描述的一样,加上“h”选项后,计算大小时,会有计算误差产生。
3.2.1、一般文件
分别执行ls -lh file.md
和du --apparent-size -h file.md
命令,得到如下两个执行结果,可知两个计算文件大小的命令结果一致。
1 | -rw-rw-r-- 1 dsl dsl 35K 12月 22 21:32 file.md |
1 | 35K file.md |
3.2.2、目录
分别执行ls -lh
和du --apparent-size -h sizedir
命令,得到如下两个执行结果,可知两个计算文件大小的命令结果一致。
1 | drwxrwxr-x 2 dsl dsl 4.0K 12月 22 23:18 sizedir |
1 | 4.0K sizedir |
参考文献: [1]man du