首頁  >  文章  >  運維  >  Linux中如何查找大檔案? (程式碼範例)

Linux中如何查找大檔案? (程式碼範例)

青灯夜游
青灯夜游原創
2019-03-29 16:48:546208瀏覽

隨著時間的推移,磁碟機可能會被大量佔用大量磁碟空間的不必要檔案弄得亂七八糟,從而導致Linux裝置的磁碟空間不足。那麼如何查找這些大文件呢?以下這篇文章就來跟大家介紹在Linux中使用find和du指令來找出最大檔案和目錄的方法,希望對大家有幫助。

Linux中如何查找大檔案? (程式碼範例)

使用find指令找大檔案

find指令是Linux系統管理員工具庫中最強大的工具之一。它允許用戶根據不同的標準(包括檔案大小)搜尋檔案和目錄。

例如,如果要搜尋大小超過100MB的文件,則可以在目前工作目錄中使用以下命令:

sudo find . -xdev -type f -size +100M

說明:可以將「.」替換為要搜尋最大文件的目錄的路徑。

輸出將顯示沒有任何其他資訊的檔案清單。

/var/lib/libvirt/images/centos-7-desktop_default.img
/var/lib/libvirt/images/bionic64_default.img
/var/lib/libvirt/images/win10.qcow2
/var/lib/libvirt/images/debian-9_default.img
/var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
/var/lib/libvirt/images/centos-7_default.img

find指令也可以與其他工具(如ls或sort)結合使用,對這些檔案執行操作。

例如:我們將find命令的輸出傳遞給ls,ls將輸出每個找到的檔案的大小,然後透過管道將輸出傳遞給sort命令,根據第5列的檔案大小對其進行排序。

find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r

就會實現以下輸出:

-rw-------  1 root   root 40967M Jan  5 14:12 /var/lib/libvirt/images/win10.qcow2
-rw-------  1 root   root  3725M Jan  7 22:12 /var/lib/libvirt/images/debian-9_default.img
-rw-------  1 root   root  1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop_default.img
-rw-------  1 root   root   999M Jan  5 14:43 /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
-rw-------  1 root   root   562M Dec 31 07:38 /var/lib/libvirt/images/centos-7_default.img
-rw-------  1 root   root   378M Jan  7 22:26 /var/lib/libvirt/images/bionic64_default.img

如果輸出包含大量訊息,我們也可以使用head指令僅輸出前10行:

find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r | head

讓我們來分解、理解上述指令:

1、find . -xdev -type f -size 100M -print:在目前工作目錄(.)中搜尋(-type f)大於100MB(-size 100M)的文件,不要降低其他文件系統(-xdev)上的目錄,在標準輸出上輸出完整的文件名,然後換行輸出(-print)。

1、xargs ls -lh:使用xargs執行ls-lh指令,該指令將以人類可讀的長列表格式顯示輸出。

3、sort -k5,5 -h -r:根據第5列(-k5,5)來對行進行排序,比較人類可讀格式(-h)並反轉結果(-r)。

4、head :只顯示管道輸出的前10行。

find指令有很多強大的選項。例如,可以搜尋大於x天的大檔案、具有特定副檔名的大檔案或屬於特定使用者的大檔案。

使用du指令尋找大檔案和目錄

#du指令用於估計檔案空間使用情況,對於尋找佔用大量磁碟空間的目錄和文件特別有用。

使用下列指令將輸出最大的檔案和目錄:

du -ahx . | sort -rh | head -5

輸出:

55G.
24G./.vagrant.d/boxes
24G./.vagrant.d
13G./Projects
5.2G./.minikube

#指令說明:

##1、

du -ahx .:估計目前工作目錄(.)中的檔案空間使用情況,同時計算檔案和目錄(a),以人類可讀格式(h)輸出大小,並跳過不同文件系統(x)上的目錄。

2、

sort -rh:透過比較人類可讀格式(-h)對行進行排序,並反轉結果(-r)。

3、

head -5 :僅輸出管道輸出的前5行。

du指令包含其他選項,您可以使用這些選項來最佳化磁碟空間所使用的輸出。

相關影片教學推薦:《

Linux教學

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是Linux中如何查找大檔案? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn