linux 計算目錄檔案大小
如果你要計算某個目錄下所有檔案大小的總和,可以使用 du 指令來完成。以下是幾種方法,根據不同需求來選擇:
方法 1:使用 du -sh
du -sh --block-size=GB /path/to/directory
說明:
-s:顯示目錄大小的總和(不顯示每個子目錄的大小)。-h:以人類可讀的格式顯示檔案大小。--block-size=GB:強制使用 GB 為單位來顯示大小。/path/to/directory:要計算的目錄路徑,可以換成你要檢查的實際目錄。
例如,若要計算當前目錄 (.) 的大小加總,指令如下:
du -sh --block-size=GB .
方法 2:僅顯示總和大小
使用 du -c 來計算目錄下所有檔案的大小,並且在最後顯示總和:
du -ch --block-size=GB /path/to/directory | grep total
說明:
-c:除了每個檔案和目錄的大小,還會在最後列出一個總和(total)。-h:人類可讀格式顯示。grep total:篩選並僅顯示total行,這樣就不會列出所有中間檔案或目錄的大小。
方法 3:使用 find 和 awk
如果想要更靈活地計算特定檔案類型的總大小,可以使用 find 結合 stat 和 awk:
find /path/to/directory -type f -exec stat --format="%s" {} \; | awk '{total += $1} END {print total / (1024*1024*1024) " GB"}'
說明:
find /path/to/directory -type f: 查找指定目錄下的所有檔案(-type f)。stat --format="%s" {} \;: 顯示每個檔案的大小(單位:位元組)。awk '{total += $1} END {print total / (1024*1024*1024) " GB"}': 累加所有檔案大小並將結果轉換為 GB 單位顯示。
這幾種方法應該能夠幫你輕鬆計算某個目錄下所有檔案的大小加總,根據需求選擇最合適的方式即可。
如果你想列出一個目錄下所有檔案和資料夾的大小,並且每個資料夾的大小要包含其內部所有檔案的大小,可以使用 du 指令來達成。這樣你可以看到每個資料夾和檔案的總大小,方便進行空間管理。
使用 du 顯示每個檔案和資料夾的大小加總
du -shc /path/to/directory/*
參數說明:
-s:只顯示目錄總和,不顯示每個子目錄和檔案的詳細大小。-h:使用人類可讀的格式顯示大小(如 KB、MB、GB)。-c:最後列出所有目錄和檔案的總大小。/path/to/directory/*:指定目錄中的所有檔案和資料夾(可替換為你要查詢的實際目錄)。
範例:
如果要列出當前目錄 (.) 下所有檔案與資料夾的總大小,可以執行:
du -shc ./*
顯示每個資料夾及檔案的詳細大小
若要逐行列出每個檔案和資料夾的大小,可以直接使用以下指令:
du -ah /path/to/directory
參數說明:
-a:顯示每個檔案與資料夾的大小(包含檔案和子目錄)。-h:使用人類可讀格式顯示大小(如 KB、MB、GB)。
這樣執行後,你會看到類似下面的輸出:
4.0K /path/to/directory/file1.txt
8.0K /path/to/directory/file2.txt
1.2M /path/to/directory/subfolder
2.4M /path/to/directory
只顯示目錄大小而不顯示檔案大小
若你只想要顯示各個資料夾(不含檔案)的大小,可以使用:
du -sh /path/to/directory/*
這樣可以只列出各資料夾的總大小,而不顯示資料夾內部的各個檔案。
顯示目錄樹狀結構與總大小
如果你希望顯示整個目錄結構,並且逐層顯示每個資料夾的大小,可以執行:
du -h --max-depth=1 /path/to/directory
參數說明:
--max-depth=1:僅顯示指定深度(1表示只顯示當前層級的資料夾大小)。如果改成--max-depth=2,就會顯示每個子目錄內的資料夾大小。
這個方法很適合快速查詢每個資料夾的大小加總情況,並能在需要時深入分析某個資料夾。
最後總結
要完整地列出一個目錄下的所有檔案和資料夾大小,並加總每個資料夾內部的大小,可以使用以下指令來實現:
du -shc /path/to/directory/*
這個指令會依序顯示每個檔案與資料夾的大小,並在最後列出所有項目的總大小,非常適合用來檢查磁碟空間使用情況。