跳转到内容

gzip

本页使用了标题或全文手工转换
维基百科,自由的百科全书

gzip
原作者
開發者GNU计划
首次发布1992年10月31日,​32年前​(1992-10-31
当前版本
  • 1.13(2023年8月19日;穩定版本)[1]
編輯維基數據鏈接
源代码库git.savannah.gnu.org/cgit/gzip.git
编程语言C
操作系统Unix-like
类型数据压缩
许可协议GNU GPLv3
网站www.gnu.org/software/gzip/
NetBSD gzip / FreeBSD gzip
開發者NetBSD基金会
源代码库 編輯維基數據鏈接
编程语言C
操作系统跨平台
类型数据压缩
许可协议BSD许可证
网站www.gnu.org/software/gzip/ 编辑维基数据

gzip是一种压缩文件格式并且也是一个在类 Unix 上的一种文件解压缩的软件,通常指GNU計劃的實現,此處的gzip代表GNU zip。也經常用來表示gzip這種文件格式。軟件的作者是Jean-loup Gailly和Mark Adler。在1992年10月31日第一次公開發布,版本號0.1,1993年2月,发布了1.0版本。

OpenBSD中所包含的gzip版本實際上是compress程序,其對gzip文件的支持在OpenBSD 3.4中被添加,此處的g代表免費(gratis[2]

文件格式

[编辑]
gzip
扩展名
.gz
互联网媒体类型
application/gzip[3]
统一类型标识org.gnu.gnu-zip-archive
开发者Jean-Loup Gailly and Mark Adler
格式类型数据压缩
免费格式?
网站http://www.gzip.org/

gzip的基础是DEFLATE,DEFLATE是LZ77哈夫曼编码的一个组合体。DEFLATE最初是作为LZW以及其它受专利保护的数据压缩算法的替代版本而设计的,当时那些专利限制了compress英语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 1950RFC 1951RFC 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英语AdvanceCOMP7zip内部也有一个DEFLATE实现,可以制作gzip兼容的压缩文件,与gzip相比有更高的压缩率,不过比较耗费处理器的处理时间。

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

参见

[编辑]

参考资料

[编辑]
  1. ^ "gzip-1.13 released [stable"]; 作者姓名字符串: Jim Meyering; 出版日期: 2023年8月19日; 检索日期: 2023年8月20日.
  2. ^ OpenBSD gzip(1) manual page. OpenBSD. [2007-07-23]. 
  3. ^ RFC 6713 - The 'application/zlib' and 'application/gzip' Media Types

外部链接

[编辑]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy