Gzip是什么?

来源:TechTMT.Com  作者:整理  日期:2022-02-24 16:25:24

Gzip 是一种压缩文件格式并且也是一个在类 Unix 上的一种文件解压缩的软件,通常指 GNU 计划的实现,此处的gzip代表 GNU zip。也经常用来表示 gzip 这种文件格式。软件的作者是 Jean-loup Gailly 和 Mark Adler。

Gzip

在 1992 年 10 月 31 日第一次公开发布,版本号 0.1,1993 年 2 月,发布了 1.0 版本。OpenBSD 中所包含的 gzip 版本实际上是 compress 程序,其对 gzip 文件的支持在 OpenBSD 3.4 中被添加,此处的 g 代表免费(gratis)。

文件格式

gzip 的基础是 DEFLATE,DEFLATE 是 LZ77 与哈夫曼编码的一个组合体。DEFLATE 最初是作为 LZW 以及其它受专利保护的数据压缩算法的替代版本而设计的,当时那些专利限制了 compress 以及其它一些流行的归档工具的应用。

文件格式说明:

  • 10 字节的头,包含幻数、版本号以及时间戳
  • 可选的扩展头,如原文件名
  • 文件体,包括 DEFLATE 压缩的数据
  • 8 字节的尾注,包括 CRC-32 校验和以及未压缩的原始数据长度

尽管这种文件格式允许多个这样的数据拼接在一起,在解压时也能认出它们是拼接在一起的数据,但通常 gzip 仅用来压缩单个文件。多个文件的压缩归档通常是首先将这些文件合并成一个 tar 文件,然后再使用 gzip 进行压缩,最后生成的.tar.gz 或者.tgz 文件就是所谓的“tar 压缩包”或者“tarball”。

注意不要将 gzip 和 ZIP 压缩格式混淆。ZIP 也使用 DEFLATE 算法,而且可移植性更好,不需要一个外部的归档工具就可以包容多个文件。但是,由于 ZIP 对每个文件进行单独压缩而没有利用文件间的冗余信息(即固实压缩),所以 ZIP 的压缩率会稍逊于 tar 压缩包。

gzip 命令的常用选项

  • -c,–stdout 将解压缩的内容输出到标准输出,原文件保持不变
  • -d,–decompress 解压缩
  • -f,–force 强制覆盖旧文件
  • -l,–list 列出压缩包内储存的原始文件的信息(如,解压后的名字、压缩率等)
  • -n,–no-name 压缩时不保存原始文件的文件名和时间戳,解压缩时不恢复原始文件的文件名和时间戳(此时,解出来的文件,其文件名为压缩包的文件名)
  • -N,–name 压缩时保存原始文件的文件名和时间戳,解压缩时恢复原始文件的文件名和时间戳
  • -q,–quiet 抑制所有警告信息
  • -r,–recursive 递归
  • -t,–test 测试压缩文件完整性
  • -v,–verbose 冗余模式(即显示每一步的执行内容)
  • -1、-2、…、-9 压缩率依次增大,速度依次减慢,默认为-6

派生品和其它应用

在大多数 Linux 发行版中,通过使用 zx 选项来提取.tar.gz 格式的压缩文件,例如:tar -zxf file.tar.gz

zlib 是 DEFLATE 算法的实现库,它的 API 同时支持 gzip 文件格式以及一个简化的数据流格式。zlib 数据流格式、DEFLATE 以及 gzip 文件格式均已被分别标准化为 RFC 1950、RFC 1951、RFC 1952。

gzip 在 HTTP 压缩,一种在万维网中加速传输 HTML 和其他内容的技术。它是在 RFC 2016 中规定的三种标准 HTTP 压缩格式之一。这个 RFC(征求意见稿)页定义了一种叫做”DEFLATE”的 zlib 格式,它和 gzip 格式相同,除了 gzip 添加了 11 字节头部和尾部的负载。但是,现在还是建议使用 gzip 而不是 zlib,因为根据 RFC 1950, IE 还没有正确的实现该标准,还不能处理 zlib 格式。

zlib DEFLATE 已经在 Portable Network Graphics(PNG)格式中使用。

自 20 世纪 90 年代末期以来,一个基于数据块排序算法的文件压缩工具 bzip2 作为 gzip 的替代者逐渐得到流行,它可以生成相当小的压缩文件,尤其是对于源代码和其他结构化文本更是这样,但代价是最高达 4 倍的内存与处理器时间消耗。bzip2 压缩的 tar 包传统上叫作.tar.bz2 或.tbz。

AdvanceCOMP 和 7zip 内部也有一个 DEFLATE 实现,可以制作 gzip 兼容的压缩文件,与 gzip 相比有更高的压缩率,不过比较耗费处理器的处理时间。

gzip 压缩文件对应的解压程序是 gunzip。

分类:产品
标签:是什么
编辑:tmt
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。文章版权归原作者所有,内容不代表本站立场!
免责声明: 阁下应知本站所提供的内容不能做为操作依据。本站作为信息内容发布平台,不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考! 如文中内容影响到您的合法权益(含文章中文字、图片等),请及时联系本站,我们会及时删除处理。