您的位置:首页 > 运维架构 > Linux

Linux 磁盘空间大小统计du命令常见用法

2014-07-11 10:58 1026 查看
在 Linux下,可以对某个文件或文件夹所占空间大小进行统计,这里将一些常用用法汇总如下:
1、对指定文件或文件夹进行统计,缺省单位为kbyte(k或千字节),下例对文件夹testa进行统计:

[web@localhost ~]$ du -s testa

1589308 testa

2、对文件夹统计的正确做法,如果想知道某个文件夹所占空间的大小,用什么命令?直接用du可以吗?

可以是可以,但是,它会将该文件夹底下所有目录都统计一遍,显然,这不是我们想要的。正确的做法是使用 -s操作符,下面是不用-s 的结果:

[web@localhost Oracle]$ du utils

16 utils/config/10.3

172 utils/config/help/7.2.0.0/en/cw

176 utils/config/help/7.2.0.0/en

204 utils/config/help/7.2.0.0/pt_BR/cw

208 utils/config/help/7.2.0.0/pt_BR

204 utils/config/help/7.2.0.0/fr/cw

208 utils/config/help/7.2.0.0/fr

188 utils/config/help/7.2.0.0/de/cw

192 utils/config/help/7.2.0.0/de

164 utils/config/help/7.2.0.0/zh_CN/cw

168 utils/config/help/7.2.0.0/zh_CN

168 utils/config/help/7.2.0.0/zh_TW/cw

172 utils/config/help/7.2.0.0/zh_TW

176 utils/config/help/7.2.0.0/ko/cw

180 utils/config/help/7.2.0.0/ko

196 utils/config/help/7.2.0.0/es/cw

200 utils/config/help/7.2.0.0/es

192 utils/config/help/7.2.0.0/ja/cw

196 utils/config/help/7.2.0.0/ja

180 utils/config/help/7.2.0.0/it/cw

184 utils/config/help/7.2.0.0/it

1888 utils/config/help/7.2.0.0

1892 utils/config/help

1912 utils/config

8 utils/ccr/config/default

16 utils/ccr/config

3336 utils/ccr/lib

23508 utils/ccr/inventory/pending

23512 utils/ccr/inventory

180 utils/ccr/bin

16 utils/ccr/doc

27188 utils/ccr

20 utils/clone

44 utils/bsu

28 utils/quickstart/images

128 utils/quickstart

572 utils/uninstall/WebLogic_Platform_10.3.6.0

40 utils/uninstall/extftr

712 utils/uninstall

30028 utils

使用-s后:

[web@localhost Oracle]$ du -s utils

30028 utils

3、显示实际文件夹的大小(对实际文件大小进行统计,而不是对所占用磁盘空间进行统计)

[web@localhost Oracle]$ du --apparent-size utils

6 utils/config/10.3

103 utils/config/help/7.2.0.0/en/cw

107 utils/config/help/7.2.0.0/en

128 utils/config/help/7.2.0.0/pt_BR/cw

132 utils/config/help/7.2.0.0/pt_BR

128 utils/config/help/7.2.0.0/fr/cw

132 utils/config/help/7.2.0.0/fr

119 utils/config/help/7.2.0.0/de/cw

123 utils/config/help/7.2.0.0/de

94 utils/config/help/7.2.0.0/zh_CN/cw

98 utils/config/help/7.2.0.0/zh_CN

97 utils/config/help/7.2.0.0/zh_TW/cw

101 utils/config/help/7.2.0.0/zh_TW

111 utils/config/help/7.2.0.0/ko/cw

115 utils/config/help/7.2.0.0/ko

119 utils/config/help/7.2.0.0/es/cw

123 utils/config/help/7.2.0.0/es

124 utils/config/help/7.2.0.0/ja/cw

128 utils/config/help/7.2.0.0/ja

114 utils/config/help/7.2.0.0/it/cw

118 utils/config/help/7.2.0.0/it

1175 utils/config/help/7.2.0.0

1179 utils/config/help

1188 utils/config

5 utils/ccr/config/default

9 utils/ccr/config

3284 utils/ccr/lib

23456 utils/ccr/inventory/pending

23460 utils/ccr/inventory

153 utils/ccr/bin

16 utils/ccr/doc

27036 utils/ccr

7 utils/clone

30 utils/bsu

15 utils/quickstart/images

102 utils/quickstart

546 utils/uninstall/WebLogic_Platform_10.3.6.0

40 utils/uninstall/extftr

672 utils/uninstall

29055 utils

可以看到文件的实际大小总是比占用空间小的。

4、如果要想让结果看起来易读一点咋办?也就是我们平时口中习惯说的空间大小,也就是转换为多少G, 或多少M,或多少K,当然只是一个概数。

[web@localhost ~]$ du -s -h testa

1.6G testa

5、指定统计单位,统计单位可以是块(512byte),byte,Kbyte(千字节)等

按块统计:

[web@localhost ~]$ du -s -B 512 testa

3178616 testa

按字节进行统计

[web@localhost ~]$ du -s -B 1 testa

1627451392 testa

按K字节进行统计

[web@localhost ~]$ du -s -B 1024 testa

1589308 testa

6、统计深度,比如,我不仅想看当前目录下各个文件夹的大小,我还希望看到二级目录下各个文件夹下的大小

[web@localhost Oracle]$ du --max-depth=2

1912 ./utils/config

27188 ./utils/ccr

20 ./utils/clone

44 ./utils/bsu

128 ./utils/quickstart

712 ./utils/uninstall

30028 ./utils

21240 ./wlserver_10.3/common

4 ./wlserver_10.3/L10N

16 ./wlserver_10.3/inventory

454968 ./wlserver_10.3/server

3460 ./wlserver_10.3/sip

196 ./wlserver_10.3/uninstall

479896 ./wlserver_10.3

11936 ./coherence_3.7/lib

12 ./coherence_3.7/inventory

52 ./coherence_3.7/bin

8 ./coherence_3.7/uninstall

12024 ./coherence_3.7

228 ./modules/junit_1.0.0.0_4-5

216 ./modules/net.sf.antcontrib_1.1.0.0_1-0b2

688 ./modules/features

1852 ./modules/com.bea.weblogic.jms.dotnetclient_1.3.2.0

4164 ./modules/org.apache.ant_1.7.1

143464 ./modules

185472 ./user_projects/domains

185476 ./user_projects

24 ./logs

851044 .

也就是说对两级目录进行分别统计,其中对子文件夹的统计(文件夹内容所占空间的和),这和单独统计文件夹是一样的,如对

./wlserver_10.3/common 统计的结果是21240,单独统计该文件夹试试看:

[web@localhost Oracle]$ du -s ./wlserver_10.3/common

21240 ./wlserver_10.3/common

7、嫌结果输出行数太多?那就不换行!

[web@localhost Oracle]$ du -0 utils

16 utils/config/10.3172 utils/config/help/7.2.0.0/en/cw176 utils/config/help/7.2.0.0/en204 utils/config/help/7.2.0.0/pt_BR/cw208 utils/config/help/7.2.0.0/pt_BR204 utils/config/help/7.2.0.0/fr/cw208 utils/config/help/7.2.0.0/fr188 utils/config/help/7.2.0.0/de/cw192
utils/config/help/7.2.0.0/de164 utils/config/help/7.2.0.0/zh_CN/cw168 utils/config/help/7.2.0.0/zh_CN168 utils/config/help/7.2.0.0/zh_TW/cw172 utils/config/help/7.2.0.0/zh_TW176 utils/config/help/7.2.0.0/ko/cw180 utils/config/help/7.2.0.0/ko196
utils/config/help/7.2.0.0/es/cw200 utils/config/help/7.2.0.0/es192 utils/config/help/7.2.0.0/ja/cw196 utils/config/help/7.2.0.0/ja180 utils/config/help/7.2.0.0/it/cw184 utils/config/help/7.2.0.0/it1888 utils/config/help/7.2.0.01892 utils/config/help1912
utils/config8 utils/ccr/config/default16 utils/ccr/config3336 utils/ccr/lib23508 utils/ccr/inventory/pending23512 utils/ccr/inventory180 utils/ccr/bin16 utils/ccr/doc27188 utils/ccr20 utils/clone44 utils/bsu28utils/quickstart/images128
utils/quickstart572 utils/uninstall/WebLogic_Platform_10.3.6.040 util

8、统计时,不想将某些文件统计在内,怎么办,使用--exclude=[pattern]去掉,下面的例子中,对文件夹logs进行统计:

[web@localhost logs]$ ls -l

总计 20

-rw-r--r-- 1 web weblogic 1317 07-02 09:19 log.txt

-rw-r----- 1 web weblogic 1743 07-02 09:25 wlsconfig_20140702092113.log

-rw-r----- 1 web weblogic 1743 07-02 09:27 wlsconfig_20140702092546.log

-rw-r----- 1 web weblogic 1743 07-02 09:28 wlsconfig_20140702092738.log

-rw-r----- 1 web weblogic 1743 07-02 09:29 wlsconfig_20140702092819.log

可以文件夹中一共有5个文件,每个文件大小2K左右,看一下实际占用空间大小

[web@localhost logs]$ du -s *

4 log.txt

4 wlsconfig_20140702092113.log

4 wlsconfig_20140702092546.log

4 wlsconfig_20140702092738.log

4 wlsconfig_20140702092819.log

实际每个所占用的空间4k左右(注意:文件占用空间和文件大小有区别)

[web@localhost logs]$ du --apparent-size *

2 log.txt

2 wlsconfig_20140702092113.log

2 wlsconfig_20140702092546.log

2 wlsconfig_20140702092738.log

2 wlsconfig_20140702092819.log

使用k字节统计大约2K左右

[web@localhost logs]$ du --apparent-size -B 1 *

1317 log.txt

1743 wlsconfig_20140702092113.log

1743 wlsconfig_20140702092546.log

1743 wlsconfig_20140702092738.log

1743 wlsconfig_20140702092819.log

使用字节统计,则和ls命令获取的文件大小结果一样

[web@localhost logs]$ cd ..

[web@localhost Oracle]$ du -s logs

24 logs

不包含txt文件后统计,大小少了4k

[web@localhost Oracle]$ du -s --exclude=*.txt logs

20 logs

9、统计符号链接,在统计某文件夹磁盘空间大小时,符号链接实际存储位置可能在其他分区上,缺省是不进行统计的,若要进行统计,则使用-L参数

[web@localhost logs]$ ls -l ../registry.xml

-rw-r--r-- 1 web weblogic 1908 07-02 09:19 ../registry.xml

可以看到registry.xml实际大小2K左右,创建两个符号链接:

[web@localhost logs]$ ln -s ../registry.xml ./test.xml

[web@localhost logs]$ ln -s ../registry.xml test2.xml

[web@localhost logs]$ ls -l

总计 20

-rw-r--r-- 1 web weblogic 1317 07-02 09:19 log.txt

lrwxrwxrwx 1 web weblogic 15 07-11 10:36 test2.xml -> ../registry.xml

lrwxrwxrwx 1 web weblogic 15 07-11 10:36 test.xml -> ../registry.xml

-rw-r----- 1 web weblogic 1743 07-02 09:25 wlsconfig_20140702092113.log

-rw-r----- 1 web weblogic 1743 07-02 09:27 wlsconfig_20140702092546.log

-rw-r----- 1 web weblogic 1743 07-02 09:28 wlsconfig_20140702092738.log

-rw-r----- 1 web weblogic 1743 07-02 09:29 wlsconfig_20140702092819.log

这时,可以看到统计的磁盘空间多了8k,变成了32

[web@localhost Oracle]$ du -L logs

32 logs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: