Tar Gzip 壓縮封存檔 (.tar.gz)

POSIX.1 標準

Tar Gzip(.tar.gz,也稱為 .tgz)結合了 TAR 封存與 Gzip 壓縮,常用於軟體散布與檔案封裝。

檢查與中繼資料

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 TAR.GZ 檔案:

在這裡選擇或拖放檔案

私密 - 檔案絕不會離開您的裝置

或貼上 Ctrl+V
零網路傳輸隱私保證: 0 位元組上傳至外部伺服器。所有處理皆在本機瀏覽器沙箱中進行。

位元組層級標頭簽章(檔案簽章)

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 TAR.GZ 檔案:

十六進位簽章(偏移量 0):

1F 8B 08

ASCII 表示法: ..\x08

標準化: POSIX.1 ustar(RFC 1952 gzip 包裝)

技術規格

容器架構包裝在 RFC 1952 Gzip 壓縮容器中的 POSIX ustar / GNU tar 封存串流
壓縮兩階段封裝:先進行 TAR 序列化,再進行 DEFLATE 壓縮
位元組序包裹八進位 POSIX tar 區塊的小端序 gzip 封套
色彩空間不適用(封存容器)
色版與結構多檔案 Unix 目錄樹、符號連結、檔案擁有者與權限位元
最大尺寸無限制的串流封存大小
透明度無損檔案資料;中繼資料的保留取決於封存格式與解壓縮設定
串流與漸進式端到端可管線化串流:在單次處理中同時完成解壓縮與解開

技術比較矩陣:TAR.GZ 對比競爭格式

技術屬性TAR.GZ (目前)ZIP7ZTAR.BZ2
Unix 權限儲存由封存檔與解壓縮工具支援的 POSIX 中繼資料有限 / 通常會遺失保留基本屬性支援解壓縮工具所選的 POSIX 中繼資料
壓縮率中等(Gzip DEFLATE)中等(ZIP DEFLATE)非常高(LZMA2)高(Bzip2 BWT)
解壓縮速度快速(約 300 MB/s)快速(約 300 MB/s)中等(約 100 MB/s)慢速(約 40 MB/s)
Linux 生態系統標準常見於開源封裝消費者桌面預設值Windows 愛好者首選舊版 Linux 原始碼發布

常見損壞模式與十六進位修復指南

命令列回報「gzip: stdin: invalid compressed data--format violated」(壓縮資料無效,違反格式)。

根本原因: Gzip 封套中的損壞位元組或下載不完整。

修復: 嘗試使用 File2File.app 封存解壓縮工具或「tar -izxf broken.tar.gz」進行部分復原。

安全性分析與解析器攻擊向量

如果不小心解壓縮,TAR.GZ 封存檔會同時結合壓縮炸彈與目錄穿越攻擊的風險。

已知攻擊向量

  • 類似 Zip 炸彈的放大效果,微小的 .tar.gz 檔案會展開成數 TB 全為零的資料。
  • 目錄穿越(例如「../../root/.ssh/authorized_keys」)以覆寫具權限的檔案。
  • 在以 root 身分解壓縮時建立惡意裝置節點。

防禦最佳實務: 以無特權的使用者身分解壓縮檔案,並對所有目標檔案路徑進行檢查與過濾以防止目錄穿越。

歷史起源與里程碑

2015Docker 容器散布架構將分層的 .tar.gz rootfs 映像檔標準化。
1996IETF 將底層的 Gzip 規格標準化為 RFC 1952。
1993GNU tar 新增了整合的「tar -z」選項,使 .tar.gz 成為封裝檔案的便利工具。

主要優勢與優點

  • 軟體專案經常將原始碼封存發布為 .tar.gz,因為 TAR 可以群組目錄樹,而 Gzip 可以壓縮串流。
  • 一個 .tar.gz 可以在 TAR 層記錄權限與符號連結。還原方式取決於解壓縮工具與目標作業系統,因此在不同平台上解開後請檢查權限。
  • 完全可串流:可透過網路管線下載、解壓縮與解開,而無需將暫存檔案寫入磁碟。

技術限制與缺點

  • 解開單一檔案需要解壓縮直到該檔案位置為止的整個封存檔。
  • 壓縮率低於 .tar.xz 或 .tar.zst 等現代替代格式。
  • 在舊版 Windows 系統上不如廣泛支援的 .zip 格式直觀。

有趣的技術冷知識

  • 在具有 8.3 檔名限制的 MS-DOS 系統上,「.tar.gz」被縮寫為「.tgz」。
  • 每次執行「npm install」時,npm 都會在幕後下載並解壓縮 .tgz (tar.gz) 套件。
  • Linux 使用者通常透過助憶法「eXtract Ze File」來記住解壓縮 tar.gz 檔案的指令:tar -xzf file.tar.gz。

常見技術問題

.tar.gz 與 .zip 之間有什麼區別?

.zip 會使用中央目錄來儲存檔案,而 .tar.gz 則是在 Gzip 中包裝 TAR 串流。中繼資料的保留取決於壓縮檔與解壓縮設定。

.tgz 和 .tar.gz 是一樣的嗎?

是的。.tgz 只是 .tar.gz 的簡短 3 個字元副檔名,最初是為了支援 DOS 等具有 8.3 短檔名限制的作業系統而建立的。

如何在 Windows 上解壓縮 .tar.gz 檔案?

您可以直接在網頁瀏覽器中使用 File2File.app 解壓縮 .tar.gz 檔案,無須安裝 WinRAR 或 7-Zip。