Linux上查找最大文件的 3 種方法
有時候我們在系統(tǒng)上安裝了數(shù)十個應(yīng)用程序,隨著使用時間的推移,許多文件變得越來越大,從而導(dǎo)致磁盤空間越來越小。那么問題來了,如何找到系統(tǒng)上這些大文件,然后進行一番磁盤空間清理呢,這篇文章就此介紹幾種查找大文件的方法。注意:僅限于Linux系統(tǒng)。
第一種:ls
最簡單的方法就是借助 ls 命令,因為 ls 命令本身輸出是帶文件大小信息的。
比如,我要列出 /bin 目錄中的 5 個最大文件,可以:
- ls -lSh /bin | head -5
第二種:find
find 本身就是查找命令,可以遞歸查找一個目錄的子目錄,所以用它是自然的。
比如,查找 / 目錄下最大的一個文件:
- sudo find / -type f -printf “%s\t%p\n” | sort -n | tail -1
如果要找前 10 個大文件呢,可以這樣:
- $ find $HOME -type f -printf ‘%s %p\n’ | sort -nr | head -10
也可以使用 -size 選項來查找,以下命令將顯示大于100MiB(注意不是100MB,MiB和MB的區(qū)別,emmm)的所有文件:
- find / -size +100M -ls
也可以查找一個區(qū)間大小的(比如 100MiB 和 200MiB )之間的文件:
- find / -size +100M -size -200M -ls
最后,下面這個命令也比較常用,查找某個目錄最大的5個文件:
- find $DIRECTORY -type f -exec ls -s {} \; | sort -n | tail -n 5
補充一點,find 也可以查找最近的文件:少于或等于n天(-ctime -n)的文件或?qū)儆谔囟ㄓ脩?-user mrlinus)的文件。
第三種:du
du 命令可以查看磁盤空間的使用情況,自然也可以用來查看磁盤上占用空間較多的文件和文件夾。
比如,查找 /home 下前 20 個最大的文件:
- sudo du -a /home | sort -n -r | head -n 20
查找當(dāng)前文件夾中最大的 10 個目錄:
- sudo du -a | sort -n -r | head -n 10
如果要顯示可讀的KB、MB、GB信息,可以加上 -h 參數(shù):
- du -hs * | sort -rh | head -n 10
查找最大目錄/文件(包括子文件夾):
- du -Sh | sort -rh | head -n 10
如果只看大小在 GB 范圍內(nèi)的所有文件,可以同時使用 du 命令和 grep 命令:
- du -h -a /dir | grep “[0-9]G\b”
OK,以上便是 3 種 Linux 系統(tǒng)上查找大文件的方法,希望大家都能掌握。