在 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}'

📜 整個 Git 歷史中所有 *.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 的 SHA
  • git 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 的大小總和
    整理成一份 快速參考表 (Quick Reference Guide),未來只要複製貼上就能直接用:

Git 快速參考:列出並計算 *.m4a 檔案大小

🔹 目前版本中的 *.m4a 檔案

# 列出所有檔案與大小

git ls-files '*.m4a' | xargs du -b
# 總和大小 (bytes)

git ls-files '*.m4a' | xargs du -b | awk '{sum += $1} END {print sum}'

🔹 整個 Git 歷史中的 *.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 + du
  • 分析整個歷史空間佔用:用 git rev-list + git cat-file
  • 找出大檔案:最後一個範例能排序,方便定位佔空間最大的 .m4a

Also See

File2FileLast Modified
git內部完全刪除一個檔案git內部完全刪除一個檔案2:24 PM - January 12, 2026
Git 專案中徹底刪除某類型副檔名所有檔案Git 專案中徹底刪除某類型副檔名所有檔案2:24 PM - January 12, 2026