所有項目

2012年10月15日 星期一

linux 查詢檔案大小

磁碟與目錄的容量:
df

[root@www ~]# df [-ahikHTm] [目錄或檔名]
選項與參數:
-a  :列出所有的檔案系統,包括系統特有的 /proc 等檔案系統;
-k  :以 KBytes 的容量顯示各檔案系統;
-m  :以 MBytes 的容量顯示各檔案系統;
-h  :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
-H  :以 M=1000K 取代 M=1024K 的進位方式;
-T  :連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;
-i  :不用硬碟容量,而以 inode 的數量來顯示

範例一:將系統內所有的 filesystem 列出來!
[root@www ~]# df
Filesystem      1K-blocks      Used Available Use% Mounted on
/dev/hdc2         9920624   3823112   5585444  41% /
/dev/hdc3         4956316    141376   4559108   4% /home
/dev/hdc1          101086     11126     84741  12% /boot
tmpfs              371332         0    371332   0% /dev/shm
# 在 Linux 底下如果 df 沒有加任何選項,那麼預設會將系統內所有的 
# (不含特殊記憶體內的檔案系統與 swap) 都以 1 Kbytes 的容量來列出來!
# 至於那個 /dev/shm 是與記憶體有關的掛載,先不要理他!

範例二:將容量結果以易讀的容量格式顯示出來
[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /
/dev/hdc3             4.8G  139M  4.4G   4% /home
/dev/hdc1              99M   11M   83M  12% /boot
tmpfs                 363M     0  363M   0% /dev/shm
# 不同於範例一,這裡會以 G/M 等容量格式顯示出來,比較容易看啦!

範例三:將系統內的所有特殊檔案格式及名稱都列出來
[root@www ~]# df -aT
Filesystem    Type 1K-blocks    Used Available Use% Mounted on
/dev/hdc2     ext3   9920624 3823112   5585444  41% /
proc          proc         0       0         0   -  /proc
sysfs        sysfs         0       0         0   -  /sys
devpts      devpts         0       0         0   -  /dev/pts
/dev/hdc3     ext3   4956316  141376   4559108   4% /home
/dev/hdc1     ext3    101086   11126     84741  12% /boot
tmpfs        tmpfs    371332       0    371332   0% /dev/shm
none   binfmt_misc         0       0         0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs         0       0         0   -  /var/lib/nfs/rpc_pipefs
# 系統裡面其實還有很多特殊的檔案系統存在的。那些比較特殊的檔案系統幾乎
# 都是在記憶體當中,例如 /proc 這個掛載點。因此,這些特殊的檔案系統
# 都不會佔據硬碟空間喔! ^_^

範例四:將 /etc 底下的可用的磁碟容量以易讀的容量格式顯示
[root@www ~]# df -h /etc
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /
# 這個範例比較有趣一點啦,在 df 後面加上目錄或者是檔案時, df
# 會自動的分析該目錄或檔案所在的 partition ,並將該 partition 的容量顯示出來,
# 所以,您就可以知道某個目錄底下還有多少容量可以使用了! ^_^

範例五:將目前各個 partition 當中可用的 inode 數量列出
[root@www ~]# df -ih 
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/hdc2               2.5M    147K    2.3M    6% /
/dev/hdc3               1.3M      46    1.3M    1% /home
/dev/hdc1                26K      34     26K    1% /boot
tmpfs                    91K       1     91K    1% /dev/shm
# 這個範例則主要列出可用的 inode 剩餘量與總容量。分析一下與範例一的關係,
# 你可以清楚的發現到,通常 inode 的數量剩餘都比 block 還要多呢


du

[root@www ~]# du [-ahskm] 檔案或目錄名稱
選項與參數:
-a  :列出所有的檔案與目錄容量,因為預設僅統計目錄底下的檔案量而已。
-h  :以人們較易讀的容量格式 (G/M) 顯示;
-s  :列出總量而已,而不列出每個各別的目錄佔用容量;
-S  :不包括子目錄下的總計,與 -s 有點差別。
-k  :以 KBytes 列出容量顯示;
-m  :以 MBytes 列出容量顯示;

範例一:列出目前目錄下的所有檔案容量
[root@www ~]# du
8       ./test4     <==每個目錄都會列出來
8       ./test2
....中間省略....
12      ./.gconfd   <==包括隱藏檔的目錄
220     .           <==這個目錄(.)所佔用的總量
# 直接輸入 du 沒有加任何選項時,則 du 會分析『目前所在目錄』
# 的檔案與目錄所佔用的硬碟空間。但是,實際顯示時,僅會顯示目錄容量(不含檔案),
# 因此 . 目錄有很多檔案沒有被列出來,所以全部的目錄相加不會等於 . 的容量喔!
# 此外,輸出的數值資料為 1K 大小的容量單位。

範例二:同範例一,但是將檔案的容量也列出來
[root@www ~]# du -a
12      ./install.log.syslog   <==有檔案的列表了
8       ./.bash_logout
8       ./test4
8       ./test2
....中間省略....
12      ./.gconfd
220     .

範例三:檢查根目錄底下每個目錄所佔用的容量
[root@www ~]# du -sm /*
7       /bin
6       /boot
.....中間省略....
0       /proc
.....中間省略....
1       /tmp
3859    /usr     <==系統初期最大就是他了啦!
77      /var
# 這是個很常被使用的功能~利用萬用字元 * 來代表每個目錄,
# 如果想要檢查某個目錄下,哪個次目錄佔用最大的容量,可以用這個方法找出來
# 值得注意的是,如果剛剛安裝好 Linux 時,那麼整個系統容量最大的應該是 /usr 
# 而 /proc 雖然有列出容量,但是那個容量是在記憶體中,不佔硬碟空間。

資料來源:http://linux.vbird.org/linux_basic/0230filesystem.php

沒有留言:

張貼留言