gzip

文件压缩程序
授权协议 GPL
开发语言 C/C++
所属分类 应用工具、 压缩、解压缩
软件类型 开源软件
地区 不详
投 递 者 万俟鸿波
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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。

  • 一、命令介绍 命令 gzip 的英文是“GNUzip”,gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,gzip 对文本文件有 60%~70% 的压缩率,使用 gzip 创建的压缩包名称以 .gz 为后缀名。 二、常用选项 选项 说明 -a 或 --ascii 使用ASCII文字模式 -c 把压缩后的文件输出到标准输出设备,不去更改原始文件,保留原文件 -d 或 --

  • 减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。 gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。 gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。 据统计,gzip命令对文本文件有60%~70%的压缩率。 1.命令格式:gzip[

  • 什么是gzip? gzip是GNUzip的缩写,最早用于UNIX系统的文件压缩。 现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。 HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。 大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。 GNU 官网上的介绍是: GNU Gzip is a popular data compres

 相关资料
  • 写压缩文件 # gzip_write.py import gzip import io import os outfilename = 'example.txt.gz' with gzip.open(outfilename, 'wb') as output: with io.TextIOWrapper(output, encoding='utf-8') as enc: e

  • Gzip 中间件 Gzip 中间件使用 gzip 压缩方案来对HTTP响应进行压缩。 使用 e.Use(middleware.Gzip()) 自定义配置 使用 e := echo.New() e.Use(middleware.GzipWithConfig(middleware.GzipConfig{ Level: 5, })) 配置 GzipConfig struct { // Skipp

  • 问题内容: 我想使用urllib下载文件,并在保存之前对文件进行解压缩。 这就是我现在所拥有的: 最终将写入空文件。我该如何实现自己的追求? 更新的答案: 问题答案: 在写完之后,但要传递给之前,您需要寻找到开始的地方。否则它将被模块从头读取,并显示为空文件。见下文:

  • 问题内容: 我想使用Gzip压缩来压缩java中的输入流。 假设我们有一个未压缩的输入流(1GB数据..)。因此,我需要从源压缩的输入流: 问题答案: DeflaterInputStream不是您想要的,因为它缺少gzip标头/预告片,并且使用略有不同的压缩方式。 如果从OutputStream(推)更改为InputStream(拉),则需要做不同的事情。 GzipOutputStream的作用是

  • 我想在JavaScript中做解压缩图像。我已经用C#使用gzip压缩了图像。如何在JavaScript中解压缩gzipped数据? C#代码

  • 问题内容: 我正在使用php的功能来执行HTTP请求。为了节省带宽,我决定使用添加标题。 显然,输出一个gzip编码的字符串,所以我用来解码该编码的字符串,但是将作为参数传递的数据出错。 我知道还有另一个功能可以解压缩压缩后的数据,但是它不包含在我的PHP版本中(也许仅在SVN上可用)。 我知道cUrl可以即时解码gzip流(没有任何问题),但是有人建议我使用它而不是cUrl。 您是否知道以其他方

  • 问题内容: 我是Go的新手,无法弄清楚如何使用该软件包对我有利。基本上,我只想写一些东西到文件中,将其gzip压缩,然后通过另一个脚本直接从压缩格式读取。如果有人可以给我一个有关如何执行此操作的示例,我将不胜感激。 问题答案: 所有压缩包都实现相同的接口。您将使用以下方式进行压缩: 并解压缩:

  • 问题内容: 我是新手。但是我正在玩REST Api。我无法从json.marshal中获得与json.Encoder相同的行为,我有两个函数 我想使用此功能gzip我的答复: 但是此函数返回以下内容: 这是go函数: 但是当我取消评论时: 它工作正常。 问题答案: 您需要先刷新或关闭gzip编写器,然后再访问基础字节,例如 否则,不会收集gzip编写器中已缓冲但尚未写到最终流中的内容。