萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> linux查看目錄大小及硬盤大小

linux查看目錄大小及硬盤大小

   linux查看目錄大小及硬盤大小的命令:

  # du -ks ---in all

  # du -k ---every last

  du和df命令都被用於獲得文件系統大小的信息:df用於報告文件系統的總塊數及剩余塊數,du -s /用於報告文件系統使用的塊數。但是,我們可以發現從df命令算出的文件系統使用塊數的值與通過du命令得出的值是不一致的。如下例:

  # du -s /tmp 返回如下值:

  ---12920 /tmp

  而 df /tmp返回如下值:

  Filesystem --512-blocks-- Free --%Used --Iused-- %Iused --Mounted on

  /dev/hd3 --------57344 --42208--- 26% ----391 ------4% --/tmp

  從上面的值我們可以算出 - = : 57344 - 42208 = 15136. 而15136大於12920。該值差異的存在是由於du與df命令實施上的不同: du -s命令通過將指定文件系統中所有的目錄、符號鏈接和文件使用的塊數累加得到該文件系統使用的總塊數;而df命令通過查看文件系統磁盤塊分配圖得出總塊數與剩余塊數。

  文件系統分配其中的一些磁盤塊用來記錄它自身的一些數據,如i節點,磁盤分布圖,間接塊,超級塊等。這些數據對大多數用戶級的程序來說是不可見的,通常稱為Meta Data。

  du命令是用戶級的程序,它不考慮Meta Data,而df命令則查看文件系統的磁盤分配圖並考慮Meta Data。df命令獲得真正的文件系統數據,而du命令只查看文件系統的部分情況。例如,一個frag=4096 並且 nbpi=4096的空的大小為4MB的日志文件系統中Meta Data的分配情況如下:

  1 4k block for the LVM

  2 4k super blocks

  2 4k blocks for disk maps

  2 4k blocks for inode maps

  2 4k blocks for .indirect

  32 4k blocks for inodes

  -------------------------

  41 4k blocks for meta data on an empty 4MB file system

  對於AIX 4.X版本:

  執行 du /foo返回的結果如下:

  ----8 -------/foo/lost+found

  ----16 ------/foo

  要使du命令輸出的結果與df命令輸出的結果匹配,我們必須要加上Meta Data。首先,將41個4k的塊轉換為以512字節為單位的值:

  41 * 8 = 328

  328(meta data) + 16(from du) = 344

  所以有344個以512字節為單位的塊分配給了這個空的文件系統。

  而使用 df /foo命令我們可以得到下面的結果:

  Filesystem --512-blocks --Free --%Used --Iused---%Iused --Mounted on

  /dev/lv01 ------8192 -----7848 -----5% -----16 -----2% ----/foo

  從中我們可以得到該文件系統使用的塊數:8192(total blocks) - 7848(free blocks) = 344。該值與上面得出的值一致。

  上面的換算方法對於空的文件系統很容易實現,但是對於非空的文件系統,由於Meta Data中文件間接塊的大小不定,因此較難實現。所以我們不需要查看du 與 df返回的值的匹配關系,而只需要了解du -s命令返回的值反映了分配給文件及目錄的磁盤塊數,而df命令則反映了文件系統的實際分配情況。df命令反映的實際情況包含了用戶數據(文件及目錄)和Meta Data。

  另一個表現出du與df命令不同之處的例子如下:

  如果用戶刪除了一個正在運行的應用所打開的某個目錄下的文件,則du命令返回的值顯示出減去了該文件後的目錄的大小。但df命令並不顯示減去該文件後的大小。直到該運行的應用關閉了這個打開的文件,df返回的值才顯示出減去了該文件後的文件系統的使用情況。

  列出一個目錄占用的空間

  1. du或du -s或du -k

  du -S | sort -n 可以迅速發現那個目錄是最大的。

  2. 用df可以看到已安裝的文件系統的空間大小及剩余空間大小。

  3. quota -v查看用戶的磁盤空間信息,如果你用quota限制了用戶空間大小的話。

copyright © 萬盛學電腦網 all rights reserved