gzip 使用教程 All In One
gzip 使用教程 All In One
gzip
https://zh.wikipedia.org/wiki/Gzip
Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。在1992年10月31日第一次公开发布,版本号0.1。
OpenBSD中所包含的gzip版本实际上是compress程序,其对gzip文件的支持在OpenBSD 3.4中被添加,此处的g代表免费(gratis)[2]。
文件格式[编辑]
gzip 扩展名 .gz
互联网媒体类型 application/gzip[3]
统一类型标识(UTI) org.gnu.gnu-zip-archive 魔数 0x1f8b 开发者 Jean-Loup Gailly and Mark Adler 格式类型 数据压缩 自由格式? 是 gzip的基础是DEFLATE,DEFLATE是LZ77与哈夫曼编码的一个组合体。DEFLATE最初是作为LZW以及其它受专利保护的数据压缩算法的替代版本而设计的,当时那些专利限制了compress以及其它一些流行的归档工具的应用。
文件格式说明:
尽管这种文件格式允许多个这样的数据拼接在一起,在解压时也能认出它们是拼接在一起的数据,但通常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命令的常用选项[编辑]
- -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
其它应用[编辑]
HTTP/1.1协议允许客户端选择要求从服务器下载压缩内容,这个标准本身定义了三种压缩方法:“gzip”(内容用gzip数据流进行封装)、“compress”(内容用compress数据流进行封装)以及“deflate”(内容是原始格式、没有数据头的DEFLATE数据流)[4]。许多HTTP客户端库、服务器平台和绝大多数现代浏览器都支持前后两种格式。
自1990年代末期以来,一个基于数据块排序算法的文件压缩工具bzip2作为gzip的替代者逐渐得到流行,它可以生成相当小的压缩文件,尤其是对于源代码和其他结构化文本更是这样,但代价是最高达4倍的内存与处理器时间消耗。bzip2压缩的tar包传统上叫作.tar.bz2或.tbz。
AdvanceCOMP和7zip内部也有一个DEFLATE实现,可以制作gzip兼容的压缩文件,并可以产生的比gzip更高的压缩率——但也需耗费更多处理器时间成本。
gzip压缩文件对应的解压程序是gunzip。
Linux命令大全
gzip命令文件压缩与解压 gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。 gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。 语法 gzip(选项)(参数) 选项 -a或——ascii:使用ASCII文字模式; -d或--decompress或----uncompress:解开压缩文件; -f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接; -h或——help:在线帮助; -l或——list:列出压缩文件的相关信息; -L或——license:显示版本与版权信息; -n或--no-name:压缩文件时,不保存原来的文件名称及时间戳记; -N或——name:压缩文件时,保存原来的文件名称及时间戳记; -q或——quiet:不显示警告信息; -r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理; -S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串; -t或——test:测试压缩文件是否正确无误; -v或——verbose:显示指令执行过程; -V或——version:显示版本信息; -<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高; --best:此参数的效果和指定“-9”参数相同; --fast:此参数的效果和指定“-1”参数相同。 参数 文件列表:指定要压缩的文件列表。 实例 把test6目录下的每个文件压缩成.gz文件 gzip * 把上例中每个压缩的文件解压,并列出详细的信息 gzip -dv * 详细显示例1中每个压缩的文件的信息,并不解压 gzip -l * 压缩一个tar备份文件,此时压缩文件的扩展名为.tar.gz gzip -r log.tar 递归的压缩目录 gzip -rv test6 这样,所有test下面的文件都变成了*.gz,目录依然存在只是目录里面的文件相应变成了*.gz.这就是压缩,和打包不同。因为是对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。 递归地解压目录 gzip -dr test6
Zepto.js
refs
©xgqfrms 2012-2025
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/5785617.html
未经授权禁止转载,违者必究!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)