gzip文件压缩程序

联合创作 · 2023-09-29 16:07

gzip 是 GNU zip 的缩写,它是一个 GNU 自由软件的文件压缩程序,也经常用来表示 gzip 这种文件格式。软件的作者是 Jean-loup Gailly 和 Mark Adler。

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 压缩包。

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

浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报