在 linux 中查看目錄占用空間可通過 du 命令實現,具體技巧包括:1. 使用 du -sh 查看目錄總大小;2. 通過 du -ah 顯示目錄下所有子目錄及文件的占用情況;3. 結合 sort 實現按大小排序輸出;4. 利用 –threshold 過濾小文件以精簡結果。這些方法可高效應對不同場景下的磁盤空間分析需求。
在 linux 系統中,查看目錄占用空間是日常運維和管理中很常見的需求。直接使用 du 命令就能快速獲取目錄或文件的磁盤使用情況,但很多人只會用最基礎的寫法,其實它還有很多實用技巧可以提升效率。
查看目錄總大小:加上 -s 參數
如果你只想知道某個目錄占用了多少空間,而不想看到里面的子目錄和文件詳情,可以使用 -s(–summary)參數來只顯示總計。
比如:
du -sh /var/log
這里 -h 是讓結果以易讀的方式顯示(如 KB、MB),-s 表示匯總。這個組合非常適合快速判斷一個目錄的整體大小,避免被大量子項信息干擾。
顯示目錄下各子目錄/文件的空間占用:常用 -h 和 -a
如果你想看看某個目錄里到底哪些子目錄或者文件占了最多空間,可以用下面這個組合:
du -ah /home/user/documents
- -a 表示列出所有文件和目錄的大小,不只是子目錄。
- 如果你去掉 -a,默認只顯示子目錄的大小匯總。
這樣可以看到具體哪個文件比較大,方便做清理或遷移決策。
按大小排序查看:結合 sort 命令
有時候我們不光想看到各個目錄的大小,還想知道誰最大、誰最小。這時候可以把 du 和 sort 結合起來用:
du -sh /home/* | sort -h
這行命令的意思是:
- du -sh /home/* 列出 /home 下每個用戶的主目錄大小。
- | sort -h 把這些結果按人類可讀的大小排序(從小到大)。
如果想從大到小排,加個 -r 參數:
du -sh /home/* | sort -hr
這種方式特別適合排查哪個用戶或者目錄突然占了很多空間。
忽略小文件:使用 –threshold 控制輸出粒度
有些目錄下文件太多,真正關心的只是那些大文件。可以通過 –threshold 來過濾掉小于某個大小的條目:
du -sh --threshold=100M /data/*
上面這條命令只會顯示 /data 目錄下大于等于 100MB 的內容。這對于快速定位大文件非常有用,避免信息過載。
基本上就這些,du 雖然是個老命令,但搭配不同參數能解決很多實際問題。掌握幾個常用的組合,能讓你在處理磁盤空間問題時更高效。