gziplinux
gzip经过Lempel-ziv算法来压缩文件,压缩的时候保留每一个文件的全部者、权限、修改时间。对于符号连接,gzip将会忽略它。算法
若是压缩的文件名对其文件系统来讲太长,则gzip将截断它。Gzip试图只截断文件名中超过3个字符的部分。(部分由点分隔。)若是名称仅由小部件组成,最长的部分将被截断。例如,若是文件名限制为14个字符,则“gzip.msdos.exe”压缩为“gzi.msd.exe.gz”。在没有文件名长度限制的系统中,名称不会被截断。测试
默认状况下,gzip将原始文件名和时间戳保存在压缩文件中。这些在使用“-N”选项解压缩文件时使用。当压缩文件名被截断或文件传输后没有保留时间戳时,这是很是有用的。压缩文件可使用“gzip –d”或“gunzip”或“zcat”恢复到它们的原始形式。若是保存在压缩文件中的原始名称不适合其文件系统,则从原始文件中构造新名称以使其合法。ui
gunzip在其命令行中获取一个文件列表,并替换其名称以.gz、-z、-z、_z或.z结尾的每一个文件,该文件以正确的魔术号开头,文件的未压缩文件没有原来的扩展名。gunzip还将特殊的扩展名.tgz和.taz分别识别为.tar.gz和.tar.z的缩写。压缩时,gzip在必要时使用.tgz扩展名,而不是截断扩展名为.tar的文件。编码
gunzip目前能够解压缩由gzip,zip,compress-H或Pack建立的文件.输入格式的检测是自动的。当使用前两种格式时,gunzip检查32位CRC。对于包,枪拉链检查未压缩长度。标准压缩格式的设计不是为了容许一致性检查。然而,gunzip有时可以检测到一个坏的.z文件。若是在解压缩.z文件时出现错误,请不要仅仅由于标准解压缩不抱怨而认为.Z文件是正确的。这一般意味着标准解压缩不检查其输入,并愉快地生成垃圾输出。上海合做组织压缩-H格式(lzh压缩方法)不包括一个CRC,但也容许一些一致性检查。spa
由zip建立的文件只有在使用“通缩”方法压缩单个成员的状况下才能被gzip解压缩。此特性仅用于帮助将tar.zip文件转换为tar.gz格式。要使用单个成员提取zip文件,可使用诸如“gunzip < foo.zip”或“gunzip –S .zip foo.zip”之类的命令。要提取包含多个成员的zip文件,请使用解压缩而不是gunzip。命令行
Zcat和“gunzip –c”是同样的。(在某些系统上,能够将zcat安装为gzcat,以保留原始连接以进行压缩。)zcat解压缩命令行上的文件列表或其标准输入,并将未压缩的数据写入标准输出。不管是否有.gz后缀,zcat都会解压缩具备正确魔术号的文件。设计
Gzip使用用于zip和PKZIP的Lempel-Ziv算法。得到的压缩量取决于输入的大小和经常使用子字符串的分布。一般,像源代码或英语这样的文本会减小60-70%.压缩一般比LZW(用于压缩)、Huffman编码(用于Pack)或自适应Huffman编码(紧凑)要好得多。code
压缩老是被执行,即便压缩文件比原始文件稍大。最坏的状况是gzip文件头的几个字节,加上每32K块5个字节,或者大文件的扩展率为0.015%。注意,使用过的磁盘块的实际数量几乎从未增长。gzip在压缩或解压缩时保留文件的模式、全部权和时间戳。orm
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
2、选项列表
选项 |
说明 |
-h | --help |
帮助信息 |
-V | --version |
显示命令版本信息 |
-a | --ascii |
文本模式,只适用于某些系统 |
-c | --stdout | --to-stdout |
将解压文件写到标准输出,源文件不变。若是有多个输入文件,则输出由一系列独立压缩的成员组成。为了得到更好的压缩,在压缩全部输入文件以前先将它们链接起来。 |
-d | --decompress | --uncompress |
解压 |
-f | --force |
强制执行 |
-l | --list |
对于每个压缩的文件,列出压缩文件大小、解压大小、压缩比列、压缩前的文件名字 |
-L | --license |
列出gzip的许可证 |
-n | --no-name |
压缩文件的时候,不保留原始文件名字和时间属性 |
-N | --name |
压缩的时候,保留原始文件和时间属性 |
-q | --quite |
跳过全部的警告信息 |
-r | --recursive |
递归压缩子目录 |
-S |.suf | --suffix | .suf |
指定压缩文件后缀。压缩时,使用后缀.suf代替.gz。能够提供任何非空后缀,但应避免使用.z和.gz之外的后缀,以免文件传输到其余系统时出现混淆。 |
-t | --test |
测试 |
-v | --verbose |
显示执行过程 |
-num | --fast | --best |
使用指定的数字num调整压缩速度,其中-1或--fast表示最快的压缩方法(较小的压缩)和-9或--best表示最慢的压缩方法(最佳压缩)。默认的压缩级别是-6(也就是说,以牺牲速度为代价倾向于高压缩)。 |
3、环境变量
环境变量GZIP能够保存gzip的一组默认选项。这些选项首先被解释,能够被显式命令行参数覆盖。例如
|
在VAX/VMS上,环境变量的名称为GZIP_OPT,以免与用于调用程序的符号设置冲突。
4、诊断信息
退出状态一般为0;若是发生错误,退出状态为1。若是发生警告,退出状态为2。
Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
|
5、一些先进用法
能够链接多个压缩文件。在这种状况下,gunzip将当即提取全部成员。例如:
|
若是.gz文件的一个成员被损坏,其余成员仍然能够恢复(若是损坏的成员被移除)。可是,您能够经过一次压缩全部成员来得到更好的压缩。
|
若是您想要从新压缩链接的文件以得到更好的压缩,可使用
|
若是一个压缩文件由多个成员组成,则--list选项报告的未压缩大小和CRC仅适用于最后一个成员。若是须要全部成员的未压缩大小,可使用
|
若是但愿建立一个包含多个成员的单个归档文件,以便之后能够独立提取成员,请使用一个归档程序(如tar或zip)。GNUtar支持-z选项来透明地调用gzip。gzip是做为tar的补充,而不是替代。
6、实例
1)压缩文件
|
2)解压
|
3)将两个文件压缩到一个文件中
|