如何查看磁盤使用情況 df和du命令高級(jí)用法

本文介紹了 linux 中 df 和 du 命令的高級(jí)用法。1. df 可通過 -h、-t、-i 等參數(shù)查看易讀格式、指定文件系統(tǒng)類型及 inode 使用情況;2. du 配合 -sh、–max-depth=1 和 sort 可靈活統(tǒng)計(jì)并排序目錄大小;3. du 的 –exclude 參數(shù)可過濾特定文件或目錄;4. find 與 du 結(jié)合可定位大文件并進(jìn)行清理。掌握這些技巧有助于高效排查磁盤問題。

如何查看磁盤使用情況 df和du命令高級(jí)用法

磁盤使用情況是運(yùn)維和日常系統(tǒng)管理中非常常見的檢查項(xiàng),尤其在 linux 系統(tǒng)中,df 和 du 是兩個(gè)最常用的命令。但很多人只停留在基本用法上,其實(shí)它們還有不少實(shí)用的高級(jí)技巧。

如何查看磁盤使用情況 df和du命令高級(jí)用法


1. 查看整體磁盤占用情況:df 的進(jìn)階用法

df 命令用于查看文件系統(tǒng)的整體使用情況。默認(rèn)執(zhí)行 df 輸出的信息可能不太直觀,推薦加上 -h 參數(shù),讓結(jié)果以易讀的方式展示(如 GB、MB):

如何查看磁盤使用情況 df和du命令高級(jí)用法

df -h

如果你想查看特定文件系統(tǒng)的類型,比如只看 ext4 或 xfs 文件系統(tǒng),可以結(jié)合 -t 參數(shù):

df -ht ext4

還可以通過 -i 查看 inode 使用情況,這對(duì)排查“磁盤沒滿但無法寫入”的問題很有幫助:

如何查看磁盤使用情況 df和du命令高級(jí)用法

df -i

小貼士:有些時(shí)候你發(fā)現(xiàn)磁盤滿了,但 du 顯示目錄占用不大,可能是被刪除但仍被進(jìn)程占用的文件占用了空間,可以用 lsof | grep deleted 檢查。


2. 統(tǒng)計(jì)目錄或文件大小:du 的靈活使用

du 主要用來統(tǒng)計(jì)目錄或文件所占磁盤空間。基礎(chǔ)用法是:

du -sh /path/to/dir
  • -s 表示匯總總大小;
  • -h 讓輸出更易讀。

如果你想知道某個(gè)目錄下各個(gè)子目錄的大小,可以加上 -h 和 –max-depth=1:

du -sh --max-depth=1 /var/

這會(huì)列出 /var/ 下每個(gè)一級(jí)子目錄的大小,方便快速定位大目錄。

還有一種常見場(chǎng)景是排序查看最大目錄,這時(shí)候可以配合 sort 命令:

du -sh /var/* | sort -h

這樣就能按大小排序,一眼看出哪個(gè)目錄最“吃”空間。


3. 排除某些文件或目錄:du 的過濾技巧

有時(shí)候我們只想統(tǒng)計(jì)某類文件或者排除一些不關(guān)心的內(nèi)容,比如日志目錄或緩存目錄,可以用 –exclude 參數(shù):

du -sh --exclude="*.log" /path/to/dir

這條命令會(huì)統(tǒng)計(jì)目錄大小,但忽略所有 .log 文件。

也可以排除整個(gè)子目錄:

du -sh --exclude="/path/to/dir/cache" /path/to/dir

這對(duì)于分析代碼倉(cāng)庫(kù)或項(xiàng)目結(jié)構(gòu)時(shí)特別有用,可以排除掉像 node_modules 這樣的大目錄。


4. 結(jié)合 find 找出大文件并清理

除了查看整體和目錄級(jí)別的使用情況,有時(shí)我們也需要找出具體的大文件來處理。

一個(gè)常用組合是 find + du:

find /path/to/search -type f -size +100M -exec du -h {} ; | sort -hr | head -n 20

這段命令的意思是:

  • 在指定路徑下找大于 100M 的文件;
  • 對(duì)找到的每個(gè)文件執(zhí)行 du -h;
  • 按大小排序后顯示前 20 條。

這個(gè)方法能幫你快速定位哪些文件是“罪魁禍?zhǔn)住保M(jìn)而決定是否清理或歸檔。


基本上就這些了。df 和 du 雖然簡(jiǎn)單,但搭配參數(shù)和其它命令一起使用,就能發(fā)揮出強(qiáng)大的功能。掌握這些用法,在排查磁盤問題時(shí)效率會(huì)高很多,也不容易遺漏細(xì)節(jié)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享