命令用途
du(disk usage)命令可以計算文件或目錄所占的磁盤空間。沒有指定任何選項時,它會測量當前工作目錄與其所有子目錄,分別顯示各個目錄所占的快數,最後才顯示工作目錄所占總快數。
命令格式
du [OPTION]… [FILE]…
-a, –all
包括了所有的文件,而不只是目錄
–apparent-size
print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due
to holes in (’sparse’) files, internal fragmentation, indirect blocks, and the like
-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是 一樣
使用案例
root@ubuntu:/# cd /home/web/
root@ubuntu:/home/web# du -s
793832 .–不指定FILE名字計算出當前目錄所占用的空間大小。
root@ubuntu:/#$ du -sh
776M .–不指定FILE名字計算出當前目錄所占用的空間大小。-h選項使得輸出結果跟容易閱讀(跟上例比較)
root@ubuntu:/#$ du –max-depth=1 -h
–輸出當前目錄下各個子目錄所使用的空間
83M ./java
87M ./build
197M ./jboss
128M ./lib
1.1M ./bin
52K ./synclogs
4.8M ./sql
920K ./conf
52K ./logs
20K ./mail_group
56K ./.svn
144M ./htdocs
56K ./jboss-conf
2.7M ./auto-conf
8.0K ./.mule
23M ./classes
43M ./templates
144K ./project
776M .
找出大文件
磁盤空間被耗盡的時候,免不了要清理一下,比如說/home目錄太大,就可以使用下面命令看看到底是誰:
du -s /home/* | sort -nr