萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> LINUX的磁盤管理du命令詳解

LINUX的磁盤管理du命令詳解

   命令用途

  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

copyright © 萬盛學電腦網 all rights reserved