如何在 Linux 命令行中查找最大的文件或文件夾
工作中經(jīng)常會有查看某個目錄下最大的文件的需求。比如在運維工作中,發(fā)現(xiàn)某個系統(tǒng)或功能不工作了,經(jīng)排查發(fā)現(xiàn)是服務(wù)器空間滿了...那么接下來就需要清理一下臨時文件或者日志文件,或者其他不需要的文件,那么就會想要查看一下,在某個目錄下,到底哪個文件占用空間最大,也就是需要找出最大的文件(或目錄)來。
一般來說,可以使用 du,sort 和 head 命令來完成這個工作。比如,在當(dāng)前目錄下查找前10個最大的文件夾,可參考如下命令:
再比如,在當(dāng)前目錄中查找前10個最大的文件和文件夾,參考如下命令:
接下來我們詳細介紹一下。
如何在 Linux 中找出最大的文件夾
du 命令用于獲取磁盤使用情況,sort 命令用于根據(jù)需求對數(shù)據(jù)進行排序,head 命令用于顯示輸入數(shù)據(jù)的前面部分。
這只是在 Linux 命令行中獲取最大文件和目錄的一個命令組合,除此以外,也還有其他一些方法來實現(xiàn)相同的效果。
首先,假如在沒有任何選項的情況下,使用這三個命令會發(fā)生什么呢?其輸出對你來說可能沒有什么實際用處。
當(dāng)開始運行這些命令的時候,除非使用 du 指定,否則所有操作都是針對當(dāng)前目錄。
不帶選項的使用 sort 命令,其結(jié)果往往會出人意料,比如,100 會被認為小于 12,因為它是按照各個數(shù)位上的字符排序的,第一位都是1,100的第二位為0,12的第二位為2,而2>0,所以12會排在100前面。
head 命令默認會顯示前 10 個條目,根據(jù)你想要分析的目錄,可修改其執(zhí)行參數(shù)。
如下所示為不帶任何選項的運行示例:?
回到正題,下面我們看看如何使用合適的選項來達到我們的目的(找到最大的文件)。
sort 命令中,-n 選項表示將字段按照數(shù)值進行排序,-r 選項表示倒序排序,這通常是我們在使用 sort 命令時所希望的。
另外,在 head 中添加 -5 選項,表示查找前 5 個條目(而不是默認的10個),這根據(jù)你的具體需求和期望來決定。
然后,重新運行如下:?
這個結(jié)果看起來好多了,哪個文件夾最大,一目了然。
du 命令的 -h 選項,可以讓列表中文件大小以人類易讀的方式顯示,如下所示:?
另外,sort 命令也有 -h 選項如下所示:
找到最大的文件
從上述命令的輸出結(jié)果中,我們可以判斷出 Documents 文件夾中包含了一些較大的文件。但是我們切換到 Documents 文件夾中,再次運行上述命令,卻看不到最大的文件,如下所示:?
這個結(jié)果表示,當(dāng)前目錄下 . 目錄中含有1.7G的文件,但是對于我們找到最大的單個文件,卻是沒有幫助的。
這需要我們在 du 命令中使用另外一個選項,-a,如下所示:?