每天一个linux命令(34):du 命令 (最有用:检查手机SD卡一级目录及文件占用空间大小,ES文件管理器爆弱了)
NAME
du - estimate file space usage
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件、目录磁盘使用的空间的查看,还是和df命令有一些区别的.
1.命令格式:
du [选项][文件]
2.命令功能:
DESCRIPTION
Summarize disk usage of each FILE, recursively for directories.(这里的FILE包括目录[文件夹],默认递归计算下面目录和文件的大小,但是不递归显示下面的目录和文件)
显示每个文件和目录的磁盘使用空间。
3.命令参数:
-a或-all write counts for all files,not just directories。显示目录中每个文件的大小。默认只显示当前一层目录中的文件和目录,下层目录中的文件和目录是不会显示的。以KB为单位显示。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-k或--kilobytes 以KB(1024bytes)为单位输出。默认为此。
-m或--megabytes 以MB为单位输出。
-c或--total 当参数是多个文件或者目录时,显示这些目录或文件的统计总和(grand total)。-c:count?
-s或--summarize 仅显示总计,只列出最后加总的值。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。仅仅是目录本身占用的空间。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<FILE>或--exclude-from=<FILE> 略过由<FILE>指定的目录或文件(exclude files that match any pattern in FILE)。
--exclude=<目录或文件> 略过指定的目录或文件。
-l或--count-links 重复计算硬件链接的文件。
-L<符号链接>或--dereference<符号链接> dereference(解除参照) all symbolic links。
-D或--dereference-args dereference only symlinks that are listed on the command line。
-P, --no-dereference don't follow any symbolic links (this is the default)
--max-depth=N print the total for a directory (or file, with --all才会显示这一级的文件信息,否则只有目录的会被显示) only if it is N or fewer levels below the command line argument; --max-depth=0 is the same as --summarize. 仅仅控制显示的深度而已,目录下面的目录和文件所占用的空间任然被统计。
注意:Manual中关于-time的参数是不对的。
4.使用实例:
实例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 .
[root@localhost test]#
说明:
只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小。那么单位呢?KB。
kenm6@ken6-desktop:~/liujin/pratice$ du
164 ./test
4 ./.nodisp
20 ./hx8369/2nd-depth/3rd-depth
40 ./hx8369/2nd-depth
60 ./hx8369
4 ./A-directory.c
164 ./gc2035
416 .
kenm6@ken6-desktop:~/liujin/pratice$ cd ..
kenm6@ken6-desktop:~/liujin$ du -h pratice/
164K pratice/test
4.0K pratice/.nodisp
20K pratice/hx8369/2nd-depth/3rd-depth
40K pratice/hx8369/2nd-depth
60K pratice/hx8369
4.0K pratice/A-directory.c
164K pratice/gc2035
416K pratice/
kenm6@ken6-desktop:~/liujin/pratice$ du -h
164K ./test
4.0K ./.nodisp
20K ./hx8369/2nd-depth/3rd-depth
40K ./hx8369/2nd-depth
60K ./hx8369
4.0K ./A-directory.c
164K ./gc2035
416K .
所以,它是以KB为单位显示的。
实例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
输出:
[root@localhost test]# du|sort -nr|more
1288 .
608 ./test6
308 ./test4
32 ./scf
16 ./scf/service
12 ./scf/service/deploy
8 ./test3
4 ./scf/service/deploy/product
4 ./scf/service/deploy/info
4 ./scf/lib
4 ./scf/doc
4 ./scf/bin
[root@localhost test]#
说明:
实例10:输出当前目录下各个一级子目录所使用的空间
命令:
du -h --max-depth=1
输出:
[root@localhost test]# du -h --max-depth=1
608K ./test6
308K ./test4
32K ./scf
8.0K ./test3
1.3M .
[root@localhost test]#
说明:
实例11:检查手机SD卡一级目录及文件占用空间大小
无论是windows上面的资源管理器还是手机上的各种文件浏览器软件,都不能直接看到文件夹的大小以列表的形式呈现。只有du命令可以做到,娃哈哈。
命令:
adb shell
$cd sdcard
$du -ah -m -d 1|sort -nr
输出:
du -ah -d 1 -m|sort -nr
du: can't open './.android_secure': Permission denied
28168 .
9057 ./youku
4153 ./Android
3873 ./pptv
1771 ./wandoujia
1555 ./.WebBuffer
1331 ./0璐瑰痉鍕?
1280 ./0闊充箰
767 ./BaiduNavi
747 ./0缇芥瘺鐞冭棰戠簿鍗?
714 ./hiapk_market
567 ./autonavidata60
431 ./BaiduMap
325 ./MIUI
325 ./.360
186 ./0鏃呮父
181 ./0鍥剧墖璧勬枡
177 ./DCIM
166 ./Tencent
133 ./autonavi
91 ./0鏉傞」鏂囦欢
89 ./SOSOMap
46 ./0瓒崇悆鏁欏瑙嗛
38 ./ylza
17 ./TaoUpdate
14 ./0棣欐腐鏃呮父
10 ./BusQuery
8 ./m1905148
8 ./RGuideMetro
6 ./taobao
6 ./etouch
6 ./download
6 ./Dino
5 ./bluetooth
5 ./AnMath
5 ./.GameCenterWebBuffer
4 ./tianqu
4 ./MyCityWeather
4 ./KingsoftOffice
4 ./.dsf
3 ./baidu
3 ./VideoPlayer
3 ./Qzone
3 ./0鎽勫奖鐭ヨ瘑姹囬泦
3 ./0鎴戠殑杞欢
3 ./0淇变箰閮?
2 ./jz
2 ./fireweed2
2 ./com.eg.android.AlipayGphone
2 ./LOST.DIR
2 ./AboutYX
2 ./.AppCenterWebBuffer_QQ
1 ./ugame
1 ./sohu
1 ./mfcache
1 ./lsh
1 ./ego
1 ./doyouhike_bbs
1 ./com.taobao.taobao
1 ./cn.chengdu.in
1 ./baishitong
1 ./alipay
1 ./Mapabc
1 ./CetSix
1 ./Amap
1 ./8264
1 ./.zdclock
1 ./.UTSystemConfig
0 ./zft
0 ./zdworks
0 ./youxin
0 ./youni_audio.amr
0 ./weiqian_record.txt
0 ./tmp
0 ./system.txt
0 ./source.xml
0 ./snda-wpayandroid-data.db
0 ./snda
0 ./sgsupdate
0 ./sended.log
0 ./robo_defense_full.bak
0 ./pushservice
0 ./published
0 ./pic.png
0 ./netease
0 ./msf
0 ./msc
0 ./mosecurity
0 ./loyoyo.cc
0 ./logs.txt
0 ./libs
0 ./kvoa
0 ./homecook
0 ./gnet
0 ./gamecenterxm_stat
0 ./gamecenter.crash.log
0 ./flightmanager
0 ./fetion
0 ./drugsafety
0 ./documents
0 ./crashreport
0 ./com.jxedt
0 ./cleanmaster_cn
0 ./cleanmaster
0 ./chujian
0 ./calljson.txt
0 ./c360_debug.txt
0 ./autonavi_error_log.txt
0 ./Zhidian
0 ./Youdao
0 ./YDW
0 ./Vlog.xml
0 ./Stats.xml
0 ./Ringtones
0 ./FetionConnect
0 ./BaiduMapSdk
0 ./2d81f23c626f247c8b0c3de9774e34
0 ./1382254307083.tst
0 ./.zdworks
0 ./.zdclock_festival
0 ./.tid962377547
0 ./.tcookieid962377547
0 ./.tcookieid
0 ./.startup
0 ./.kuaipan
0 ./.estrongs
0 ./.enref
0 ./.deviceidInfo
0 ./.com.tencent.elife
0 ./.android_
0 ./.android
0 ./.alirpt
0 ./.airAD
0 ./.DataStorage
$
说明:本来命令窗口是可以显示中文的,但不知道为什么这里显示不了SD卡的中文文件名。
这里的-d是buzybox中的参数,同--max-depth。

浙公网安备 33010602011771号