查詢Linux系統中最大的十大檔案和目錄


有時,找出哪些檔案或目錄佔用了Linux系統的大部分磁碟空間非常重要。類似地,我們應該能夠找到檔案系統中特定目錄的位置,例如/tmp/或/var/或/home/。本文將幫助您使用Unix和Linux命令來查詢檔案系統中最重要的或最大的檔案或目錄。

雖然沒有快捷命令可以查詢Linux/UNIX/BSD檔案系統中最大的檔案/目錄,但我們將會向您展示一種方法。

透過組合以下三個命令(使用管道)可以輕鬆找到Linux機器上最大的檔案列表。

  • du命令:它估計檔案空間使用情況
  • sort命令:排序文字檔案或給定輸入資料中的行
  • head命令:輸出檔案的開頭部分,即顯示前十大檔案
  • find命令:它在Linux機器上搜索檔案

使用以下命令查詢Linux系統中最大的十大檔案和目錄:

$ sudo du -a /var | sort -n -r | head -n 10

示例輸出應如下所示:

1128132      /var
779176       /var/cache
629292       /var/cache/apt
541020       /var/cache/apt/archives
327212       /var/lib
172180       /var/lib/apt
172024       /var/lib/apt/lists
130084       /var/cache/apt-xapian-index
130080       /var/cache/apt-xapian-index/index.1
87556        /var/lib/dpkg

要檢視人類可讀的輸出,請使用以下命令:

$ du -hsx * | sort -rh | head -10

示例輸出應如下所示:

4.4G   Desktop
3.8G   Downloads
149M   en-GB
146M   Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz
95M   scala-2.11.4.deb
20M   gawk-4.1.1
4.5M   linux-dash
3.9M   yii-1.1.13.e9e4a0.tar.gz.1
3.9M   yii-1.1.13.e9e4a0.tar.gz

上述命令可以透過以下說明更好地理解:

  • du命令 -h選項:以人類可讀的格式顯示大小(例如,1K、234M、2G)。
  • du命令 -s選項:它只顯示每個引數的總計(摘要)。
  • du命令 -x選項:跳過不同檔案系統上的目錄。
  • sort命令 -r選項:反轉比較結果。
  • sort命令 -h選項:它比較人類可讀的數字。這只是GNU sort特有的選項。
  • head命令 -10 或 -n 10選項:它顯示前10行。

上述命令適用於安裝在Linux上的GNU/sort,其他類似Unix的作業系統使用以下命令:

$find /path/to/dir/ -printf '%s %p
'| sort -nr | head -10 $find . -printf '%s %p
'| sort -nr | head -10

示例輸出應如下所示:

185016320 ./Desktop/gdb-7.9.tar
153300495 ./Downloads/apache-storm-1.0.0.tar.gz
152847886 ./Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz
98756608 ./scala-2.11.4.deb
96477184 ./.cache/chromium/Default/Cache/data_3
88088576 ./.cache/google-chrome/Default/Cache/data_3
66586000 ./Downloads/Apache24.zip
61919701 ./Downloads/apache-storm-1.0.0/external/flux/flux-examples-1.0.0.jar
55678503 ./Downloads/apache-storm-1.0.0/examples/storm-starter/storm-starter-topologies-1.0.0.jar

要跳過目錄並僅顯示檔案,請使用以下命令:

$ find /path/to/search/ -type f -printf '%s %p
'| sort -nr | head -10

或者

$ find /path/to/search/ -type f -iname "*.mp4" -printf '%s %p
'| sort -nr | head -10

使用du命令找出磁碟空間佔用大戶

使用以下bash shell命令:

$ alias ducks='du -cks * | sort -rn | head'

使用以下命令獲取佔用磁碟空間最大的前10個檔案/目錄:

$ ducks

示例輸出應如下所示:

5994400   total
4559508   Desktop
673712    Downloads
151596    en-GB
149268    Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz
96444     scala-2.11.4.deb
20024     gawk-4.1.1
4544      linux-dash
3952      yii-1.1.13.e9e4a0.tar.gz.1

恭喜!現在您知道“如何在Linux上查詢最大的十大檔案和目錄”了。我們將在下一篇文章中學習更多關於這些命令的資訊。繼續關注!

更新於:2020年1月20日

22K+瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.