du命令,即disk usage,可以计算文件或目录所占的磁盘空间。 命令格式:
du [选项][文件]
du [OPTION]… [FILE]…
-a, –all
包括了所有的文件,而不只是目录
-B, –block-size=SIZE use SIZE-byte blocks
-b, –bytes 以字节为计算单位
-k, 以千字节(KB)为计算单位
-m, 以兆字节(M)为计算单位
-c, –total 最后加上一个总计(系统缺省)
-D, –dereference-args
dereference FILEs that are symbolic links
-H 跟 - -si效果一样。
-h, –human-readable 以比较阅读的方式输出文件大小信息 (例如,1K 234M 2G)。注:该选项在很多其他命令(df, ls)中也有效。
–si 跟-h 效果一样,只是以1000为换算单位
-l, –count-links 计算所有的文件大小,对硬链接文件,则计算多次。
-L, –dereference 显示选项中所指定符号连接的源文件大小。
-P, –no-dereference 不跟随任何的符号连接(缺省)
-S, –separate-dirs 计算目录所占空间时不包括子目录的大小。
-s, –summarize 只显示工作目录所占总空间
-x, –one-file-system 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X FILE, –exclude-from=FILE 排除掉指定的FILE
–exclude=PATTERN 排除掉符合样式的文件,Pattern就是普通的Shell样式,?表示任何一个字符,*表示任意多个字符。
–max-depth=N
只列出深度小于max-depth的目录和文件的信息 –max-depth=0 的时候效果跟–s是 一样
实例1:显示目录或者文件所占空间
命令:
du
输出:
[root@localhost test]# du 608 ./test6 308 ./test4 4 ./scf/lib 4 ./scf/service/deploy/product 4 ./scf/service/deploy/info 12 ./scf/service/deploy 16 ./scf/service 4 ./scf/doc 4 ./scf/bin 32 ./scf 8 ./test3 1288 .
说明:
只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小
实例2:显示指定文件所占空间
命令:
du log2012.log
输出:
[root@localhost test]# du log2012.log 300 log2012.log [root@localhost test]#
实例3:查看指定目录的所占空间
命令:
du scf
输出:
[root@localhost test]# du scf 4 scf/lib 4 scf/service/deploy/product 4 scf/service/deploy/info 12 scf/service/deploy 16 scf/service 4 scf/doc 4 scf/bin 32 scf [root@localhost test]#
实例4:显示多个文件所占空间
命令:
du log30.tar.gz log31.tar.gz
输出:
[root@localhost test]# du log30.tar.gz log31.tar.gz 4 log30.tar.gz 4 log31.tar.gz [root@localhost test]#
实例5:只显示总和的大小
命令:
du -s
输出:
[root@localhost test]# du -s 1288 . [root@localhost test]# du -s scf 32 scf [root@localhost test]# cd .. [root@localhost soft]# du -s test 1288 test [root@localhost soft]#
实例6:方便阅读的格式显示
命令:
du -h test
输出:
[root@localhost soft]# du -h test 608K test/test6 308K test/test4 4.0K test/scf/lib 4.0K test/scf/service/deploy/product 4.0K test/scf/service/deploy/info 12K test/scf/service/deploy 16K test/scf/service 4.0K test/scf/doc 4.0K test/scf/bin 32K test/scf 8.0K test/test3 1.3M test [root@localhost soft]#
实例7:文件和目录都显示
命令:
输出:
[root@localhost soft]# du -ah test 4.0K test/log31.tar.gz 4.0K test/test13.tar.gz 0 test/linklog.log 0 test/test6/log2014.log 300K test/test6/linklog.log 0 test/test6/log2015.log 4.0K test/test6/log2013.log 300K test/test6/log2012.log 0 test/test6/log2017.log 0 test/test6/log2016.log 608K test/test6 0 test/log2015.log 0 test/test4/log2014.log 4.0K test/test4/log2013.log 300K test/test4/log2012.log 308K test/test4 4.0K test/scf/lib 4.0K test/scf/service/deploy/product 4.0K test/scf/service/deploy/info 12K test/scf/service/deploy 16K test/scf/service 4.0K test/scf/doc 4.0K test/scf/bin 32K test/scf 4.0K test/log2013.log 300K test/log2012.log 0 test/log2017.log 0 test/log2016.log 4.0K test/log30.tar.gz 4.0K test/log.tar.bz2 4.0K test/log.tar.gz 0 test/test3/log2014.log 4.0K test/test3/log2013.log 8.0K test/test3 4.0K test/scf.tar.gz 1.3M test [root@localhost soft]#
实例8:显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
命令:
du -c log30.tar.gz log31.tar.gz
输出:
[root@localhost test]# du -c log30.tar.gz log31.tar.gz 4 log30.tar.gz 4 log31.tar.gz 8 总计 [root@localhost test]#
说明:
加上-c选项后,du不仅显示两个目录各自占用磁盘空间的大小,还在最后一行统计它们的总和。
实例9:按照空间大小排序
命令:
du|sort -nr|more
输出: