統計 Linux 文件夾及其子目錄的總大小,最核心和高效的工具是 du (disk usage) 命令。下面的表格彙總了最常用的命令和方法,方便你快速選擇。

命令/工具

核心用法

主要特點與適用場景

du (最常用)

du -sh /path/to/directory

直接高效:專為統計磁盤使用量設計,結果是文件夾在磁盤上佔用的總空間

ncdu (交互式)

ncdu /path/to/directory

可視化分析:交互式界面,可導航並排序,直觀發現大文件/夾

結合 sort 排序

`du -h /path/to/dir

sort -hr`

🐧 使用 du 命令(推薦)

du(disk usage)是完成這個任務的專用工具,幾乎所有 Linux 系統都預裝了它。

  • 統計文件夾總大小:使用 -s(或 --summarize)選項來顯示指定目錄的總用量,避免輸出所有子目錄的細節。結合 -h(或 --human-readable)選項,讓結果以 K, M, G 等易讀的單位顯示。
du -sh /path/to/your/directory
  • 查看目錄內各子項的大小:如果你還想知道目標目錄下每個文件和子目錄分別佔用了多少空間,可以使用以下命令。添加 --max-depth=1 選項來控制遍歷的深度,例如只顯示目標目錄下一級子目錄和文件的大小。
# 查看目錄下一級子項的大小
du -h --max-depth=1 /path/to/your/directory

🔍 使用 ncdu 進行可視化分析

如果你需要一個更直觀的、可交互的工具來探索磁盤使用情況,ncdu 是一個非常好的選擇。

  • 安裝與使用:通常系統不會預裝 ncdu,你需要先安裝它。例如,在 Ubuntu/Debian 上:sudo apt install ncdu。安裝後,只需運行:
ncdu /path/to/your/directory
  • 交互界面:它會掃描指定目錄,然後提供一個界面。你可以使用鍵盤方向鍵在不同條目間導航,按 Enter 鍵進入子目錄,按 d 鍵刪除文件(需謹慎),按 q 鍵退出。

⚙️ 實用技巧與注意事項

掌握基礎命令後,下面這些技巧能讓你的磁盤空間管理更加得心應手。

  • 排序找出最大項:結合 sort 命令,可以輕鬆找出某個目錄下最大的子目錄或文件。例如,以下命令會將指定目錄下所有項按大小逆序(從大到小)排列,並顯示前 10 個:
du -h --max-depth=1 /path/to/directory | sort -hr | head -n 10

注意:為確保 sort 命令正確識別數字單位,建議在使用管道排序時,du 命令優先使用 -m(以MB為單位)或 -k(以KB為單位)而非 -h,因為 sort -n 是依據純數字排序。

  • 排除特定文件或目錄:使用 --exclude 選項可以在統計時忽略符合特定模式的文件或目錄。例如,排除所有 .log 文件:
du -sh --exclude="*.log" /path/to/directory
  • 權限問題:如果你要統計的目錄(如 /var/usr)當前用户沒有讀權限,du 命令會報錯。這時可能需要使用 sudo 來提升權限:
sudo du -sh /path/to/protected/directory

💎 總結

需求場景

推薦命令

快速查看文件夾總大小

du -sh /path/to/directory

分析文件夾內各子項大小

du -h --max-depth=1 /path/to/directory

找出佔用空間最大的項

`du -h --max-depth=1 /path/to/directory

直觀瀏覽和探索磁盤使用情況

ncdu /path/to/directory

希望這些命令和技巧能幫助你有效地管理磁盤空間!如果你在操作中遇到任何具體問題,比如某個命令的輸出不太明白,隨時可以再問我。