1. 程式人生 > 實用技巧 >Linux——du和sort命令的使用

Linux——du和sort命令的使用


du和sort命令的使用

du 命令:

du [選項][檔案]
du命令用來檢視目錄或檔案所佔用磁碟空間的大小。常用選項組合為:du -sh

一、du的功能:
  很明顯,與df不同,它用來檢視檔案或目錄所佔用的磁碟空間的大小。
二、du常用的選項:
  -h:以人類可讀的方式顯示
  -a:顯示目錄佔用的磁碟空間大小,還要顯示其下目錄和檔案佔用磁碟空間的大小
  -s:顯示目錄佔用的磁碟空間大小,不要顯示其下子目錄和檔案佔用的磁碟空間大小
  -c:顯示幾個目錄或檔案佔用的磁碟空間大小,還要統計它們的總和
  --apparent-size:顯示目錄或檔案自身的大小
  -l :統計硬連結佔用磁碟空間的大小
  -L:統計符號連結所指向的檔案佔用的磁碟空間大小
  1、du -h:這個就不多說了。
  2、du -a:使用此選項時,顯示目錄和目錄下子目錄和檔案佔用磁碟空間的大小。

  

  • 可以看出,預設情況下du只顯示download目錄佔用磁碟空間的大小,而使用-a選項後,它不僅顯示了目錄(最後一行),而且顯示了目錄下各個檔案佔用磁碟空間的大小。

三、du -s:使用此選項時,du只顯示目錄所佔用磁碟空間的大小,而不顯示其下子目錄和檔案佔用磁碟空間的資訊。

  

  • 預設情況下,du不顯示目錄下檔案佔用磁碟空間的資訊,但它會顯示其下子目錄佔用磁碟空間的資訊;而使用-s選項以後,只顯示xx目錄佔用磁碟空間的大小

四、du --apparent-size:顯示檔案或目錄自身大小,而不是它們佔用的磁碟空間大小。檔案或目錄佔用磁碟空間的大小與它們自身大小有時候並非完全一致;這種現象非linux所獨有,windows裡也是如此。我們看這個選項的幫助文件的解釋:The apparent size of a file is the number of bytes reported by wc –c

regular files ,or more generally, ls –l –block-size=1 or stat –format=%s.For example, a file containing the word zoo with no newline would, of course, have an apparent size of 3. Such a small file may require anywhere from 0 to 16 kib or more of disk space, depending on the type and configuration of the file system on which the file resides.
  這段話給出了檔案或目錄自身大小與佔用磁碟空間大小的區別。他下面舉出了一個更加誇張的例子,這裡就不把它寫出來了。我們知道了:wc或ls --block-size顯示的是其自身大小,而du給出的則是佔用的磁碟空間的大小。

 五、du -c:使用此選項時,不僅顯示幾個檔案或目錄各自佔用磁碟空間的大小,還統計它們的總和。

如圖所示,加上-c選項後,du不僅顯示兩個目錄各自佔用磁碟空間的大小,還在最後一行統計它們的總和。

  六、du -l:這個選項主要是針對硬連結。在統計目錄佔用磁碟空間大小時,-l選項會把硬連結也統計進來。幫助文件是這樣解釋的:Count the size of all files,even if they have appeared already(as a hard link)。

  

  • 我們在download目錄下建立一個硬連結,指向本目錄下的一個檔案。不使用-l選項時,du發現硬連結指向本目錄下的檔案,於是自動忽略該連結檔案,以免造成重複統計;使用-l選項,du才會把硬連結檔案也統計進來。
    七、du
    -L:這個選項主要是針對符號連結。它會把符號連結所指向的檔案佔用磁碟空間的大小也統計進來。幫助文件是這樣解釋的:Dereference symbolic links(show the disk space used by the file or directory that
    the link points to instead of the space used by the link)

檢視目錄下所有檔案的大小並按照大小排序
du -sh * | sort -rh

sort 命令:

sort -n -k2 -r(其中:-n代表:以數字排序,k2代表:按第二列的值排序,r代表:逆序)