在 Git 資料庫中列出所有 .m4a檔案,並計算它們在 目前版本和整個歷史紀錄中所佔的位元組數
要在 Git 資料庫中列出所有 *.m4a 檔案,並計算它們在 目前版本以及整個歷史紀錄中所佔的位元組數,可以用以下幾種方式:
*.m4a 檔案大小
git ls-files '*.m4a' | xargs du -b
git ls-files '*.m4a':列出工作目錄中 Git 追蹤的所有 .m4a 檔案du -b:顯示檔案大小(bytes)
git ls-files '*.m4a' | xargs du -b | awk '{sum += $1} END {print sum}'
*.m4a 檔案大小Git 物件儲存的是 blob,所以要從 commit 歷史中找出所有 .m4a blob 並計算大小:
git rev-list --objects --all \
| grep '\.m4a$' \
| cut -d' ' -f1 \
| git cat-file --batch-check='%(objectsize)' \
| awk '{sum += $1} END {print sum}'
git rev-list --objects --all:列出所有 commit 的物件(含 blob)grep '\.m4a$':篩選出 .m4a 檔案cut -d' ' -f1:取出 blob 的 SHAgit cat-file --batch-check='%(objectsize)':查詢 blob 大小(bytes)awk:加總所有大小如果想要看到每個 .m4a 檔案在歷史中的大小:
git rev-list --objects --all \
| grep '\.m4a$' \
| while read sha path; do
size=$(git cat-file -s $sha)
echo "$size $path"
done | sort -n
這樣會輸出:
123456 audio/song1.m4a
234567 audio/song2.m4a
...
👉 這樣你就能同時掌握:
.m4a 檔案大小總和.m4a blob 的大小總和*.m4a 檔案大小*.m4a 檔案# 列出所有檔案與大小
git ls-files '*.m4a' | xargs du -b
# 總和大小 (bytes)
git ls-files '*.m4a' | xargs du -b | awk '{sum += $1} END {print sum}'
*.m4a 檔案# 總和大小 (bytes)
git rev-list --objects --all \
| grep '\.m4a$' \
| cut -d' ' -f1 \
| git cat-file --batch-check='%(objectsize)' \
| awk '{sum += $1} END {print sum}'
git rev-list --objects --all \
| grep '\.m4a$' \
| while read sha path; do
size=$(git cat-file -s $sha)
echo "$size $path"
done | sort -n
輸出範例:
123456 audio/song1.m4a
234567 audio/song2.m4a
...
git ls-files + dugit rev-list + git cat-file.m4a| File2 | File | Last Modified |
|---|---|---|
| git內部完全刪除一個檔案 | git內部完全刪除一個檔案 | 2:24 PM - January 12, 2026 |
| Git 專案中徹底刪除某類型副檔名所有檔案 | Git 專案中徹底刪除某類型副檔名所有檔案 | 2:24 PM - January 12, 2026 |