技術筆記 / 系統

linux 計算目錄檔案大小

如果你要計算某個目錄下所有檔案大小的總和,可以使用 du 指令來完成。以下是幾種方法,根據不同需求來選擇:

方法 1:使用 du -sh

du -sh --block-size=GB /path/to/directory

說明:

例如,若要計算當前目錄 (.) 的大小加總,指令如下:

du -sh --block-size=GB .

方法 2:僅顯示總和大小

使用 du -c 來計算目錄下所有檔案的大小,並且在最後顯示總和:

du -ch --block-size=GB /path/to/directory | grep 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"}'

說明:

這幾種方法應該能夠幫你輕鬆計算某個目錄下所有檔案的大小加總,根據需求選擇最合適的方式即可。

如果你想列出一個目錄下所有檔案和資料夾的大小,並且每個資料夾的大小要包含其內部所有檔案的大小,可以使用 du 指令來達成。這樣你可以看到每個資料夾和檔案的總大小,方便進行空間管理。

使用 du 顯示每個檔案和資料夾的大小加總

du -shc /path/to/directory/*

參數說明:

範例:

如果要列出當前目錄 (.) 下所有檔案與資料夾的總大小,可以執行:

du -shc ./*

顯示每個資料夾及檔案的詳細大小

若要逐行列出每個檔案和資料夾的大小,可以直接使用以下指令:

du -ah /path/to/directory

參數說明:

這樣執行後,你會看到類似下面的輸出:

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

參數說明:

這個方法很適合快速查詢每個資料夾的大小加總情況,並能在需要時深入分析某個資料夾。

最後總結

要完整地列出一個目錄下的所有檔案和資料夾大小,並加總每個資料夾內部的大小,可以使用以下指令來實現:

du -shc /path/to/directory/*

這個指令會依序顯示每個檔案與資料夾的大小,並在最後列出所有項目的總大小,非常適合用來檢查磁碟空間使用情況。

在 GitHub 看原文