工作中經(jīng)常會有查看某個(gè)目錄下最大的文件的需求。比如在運(yùn)維工作中,發(fā)現(xiàn)某個(gè)系統(tǒng)或功能不工作了,經(jīng)排查發(fā)現(xiàn)是服務(wù)器空間滿了…那么接下來就需要清理一下臨時(shí)文件或者日志文件,或者其他不需要的文件,那么就會想要查看一下,在某個(gè)目錄下,到底哪個(gè)文件占用空間最大,也就是需要找出最大的文件(或目錄)來。
一般來說,可以使用 du,sort 和 head 命令來完成這個(gè)工作。比如,在當(dāng)前目錄下查找前10個(gè)最大的文件夾,可參考如下命令:
du -h | sort -hr | head -n 10
再比如,在當(dāng)前目錄中查找前10個(gè)最大的文件和文件夾,參考如下命令:
du -ah | sort -hr | head -n 10
接下來我們詳細(xì)介紹一下。
如何在?Linux?中找出最大的文件夾
du 命令用于獲取磁盤使用情況,sort 命令用于根據(jù)需求對數(shù)據(jù)進(jìn)行排序,head 命令用于顯示輸入數(shù)據(jù)的前面部分。
這只是在 Linux 命令行中獲取最大文件和目錄的一個(gè)命令組合,除此以外,也還有其他一些方法來實(shí)現(xiàn)相同的效果。
首先,假如在沒有任何選項(xiàng)的情況下,使用這三個(gè)命令會發(fā)生什么呢?其輸出對你來說可能沒有什么實(shí)際用處。
當(dāng)開始運(yùn)行這些命令的時(shí)候,除非使用 du 指定,否則所有操作都是針對當(dāng)前目錄。
不帶選項(xiàng)的使用 sort 命令,其結(jié)果往往會出人意料,比如,100 會被認(rèn)為小于 12,因?yàn)樗前凑崭鱾€(gè)數(shù)位上的字符排序的,第一位都是1,100的第二位為0,12的第二位為2,而2>0,所以12會排在100前面。
head 命令默認(rèn)會顯示前 10 個(gè)條目,根據(jù)你想要分析的目錄,可修改其執(zhí)行參數(shù)。
如下所示為不帶任何選項(xiàng)的運(yùn)行示例:
$ du | sort | head
100
./.local/share/evolution/addressbook
108
./.mozilla/firefox/jwqwiz97.default-release/datareporting
112
./.local/share/gvfs-metadata
12 ./.cache/fontconfig
12
./.cache/gnome-software/screenshots/112×63
12 ./.cache/thumbnails/fail
12 ./.config/dconf
12 ./.config/evolution
12
./.config/gnome-control-center/backgrounds
12 ./.config/ibus
回到正題,下面我們看看如何使用合適的選項(xiàng)來達(dá)到我們的目的(找到最大的文件)。
sort 命令中,-n 選項(xiàng)表示將字段按照數(shù)值進(jìn)行排序,-r 選項(xiàng)表示倒序排序,這通常是我們在使用 sort 命令時(shí)所希望的。
另外,在 head 中添加 -5 選項(xiàng),表示查找前 5 個(gè)條目(而不是默認(rèn)的10個(gè)),這根據(jù)你的具體需求和期望來決定。
然后,重新運(yùn)行如下:?
$ du | sort -nr | head -5
1865396 .
1769532 ./Documents
76552 ./.cache
64852 ./.cache/mozilla
64848 ./.cache/mozilla/firefox
這個(gè)結(jié)果看起來好多了,哪個(gè)文件夾最大,一目了然。
du 命令的 -h 選項(xiàng),可以讓列表中文件大小以人類易讀的方式顯示,如下所示:?
$ du -h | sort -nr | head -5
980K ./.local/share/app-info
976K
./.local/share/app-info/xmls
824K ./.cache/thumbnails
808K ./.cache/thumbnails/large
804K ./.local/share/tracker
另外,sort 命令也有 -h 選項(xiàng)如下所示:
$ du -h | sort -hr | head -5
1.8G .
1.7G ./Documents
75M ./.cache
64M
./.cache/mozilla/firefox/jwqwiz97.default-release
64M ./.cache/mozilla/firefox
找到最大的文件
從上述命令的輸出結(jié)果中,我們可以判斷出 Documents 文件夾中包含了一些較大的文件。但是我們切換到 Documents 文件夾中,再次運(yùn)行上述命令,卻看不到最大的文件,如下所示:?
$ du -h | sort -hr | head -5
1.7G .
這個(gè)結(jié)果表示,當(dāng)前目錄下 . 目錄中含有1.7G的文件,但是對于我們找到最大的單個(gè)文件,卻是沒有幫助的。
這需要我們在 du 命令中使用另外一個(gè)選項(xiàng),-a,如下所示:?
$ du -ah | sort -hr | head -5
1.7G .
1.1G ./1gig-file.file
699M ./doc.tar
2.9M
./photo-of-woman-wearing-turtleneck-top-2777898.jpg
1.4M
./semi-opened-laptop-computer-turned-on-on-table-2047905.jpg
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至2705686032@qq.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。原文轉(zhuǎn)載: 原文出處: