Tar Gzip 归档 (.tar.gz)

POSIX.1 标准

Tar Gzip(.tar.gz,也称为 .tgz)是 Linux 和开源世界中标准的软件分发与归档打包格式,它将 Unix 原生的 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 压缩
字节序小端序 Gzip 封装,内含八进制 POSIX tar 数据块
色彩空间不适用(归档容器)
通道与结构多文件 Unix 目录树、符号链接、文件所有权和权限位
最大尺寸归档大小不限,支持流式处理
透明度100% 按位精确保留文件系统结构和数据
流式传输与渐进式加载端到端管道式流处理:单遍完成解压和提取

技术对比矩阵:TAR.GZ 对比同类产品

技术属性TAR.GZ (当前)ZIP7ZTAR.BZ2
Unix 权限100% 保留原生 POSIX 属性有限支持 / 通常会丢失保留基本属性100% 保留原生 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 -z' 标志,确立了 .tar.gz 作为默认 Linux 包格式的地位。

核心优势与特点

  • 开源源代码发布、Linux 软件包和 Docker 容器层的无可争议的标准。
  • 将完整保留 POSIX 权限和符号链接的能力与可靠、快速的 Gzip 压缩结合在一起。
  • 完全支持流式处理:可以通过网络管道下载、解压和解包,而无需在磁盘上写入临时文件。

技术局限与劣势

  • 提取单个文件需要解压整个归档文件直到该文件的位置。
  • 压缩率低于 .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 首先将所有文件组合成一个单一的流,从而保留完整的 Linux 权限和符号链接。

.tgz 和 .tar.gz 是一样的吗?

是的。.tgz 只是 .tar.gz 的简写 3 字母文件扩展名,最初是为诸如 DOS 等具有 8.3 短文件名限制的操作系统而创建的。

如何在 Windows 上提取 .tar.gz 文件?

您可以直接在网页浏览器中使用 File2File.app 提取 .tar.gz 文件,而无需安装 WinRAR 或 7-Zip。