总揽

gzip [ -acdfhlLnNrtvV19 ] [-S 后缀] [ 文件名 ... ]
gunzip [ -acfhlLnNrtvV ] [-S 后缀] [ 文件名
...
]
zcat [ -fhLV ] [ 文件名 ... ]

描述

Gzip 采用Lempel-Ziv 编码算法(LZ77)压缩给定文件的大小。在可能的情况下, 每个文件被具有扩展名
.gz, 的文件所替换, 同时保留原属主状态,存取和修改时间 (在VMS系统下缺省扩展名为 -gz 在MSDOS、OS/2 FAT,
Windows NT FAT 和Atari系统下,缺省扩展名为 z )
如果未指定文件名,或者指定了一个名为"-"的文件名,则从标准输入读取数据,压缩的结果输出到标准输出。 Gzip
只尝试压缩常规文件,特别地,它将忽略符号连接。

如果压缩后的文件名对于所在的文件系统来说太长, gzip 会将其截断。 Gzip
只尝试截断文件名中大于3个字符的段(每个段由点分隔)。如果文件名只由较小的段组成,最长的段将被截断。例如,如果文件名的长度限制是14个字符,文件gzip.msdos.exe
将被压缩为gzi.msd.exe.gz。在没有文件名长度限制的系统中,文件名将不会被截断。

缺省情况下, gzip 将原始文件名和时间信息保存在压缩后的文件中。当采用 -N
选项解压缩文件时,这些信息将被利用。在经过文件传输后文件名被截断及时间信息未被保留的情况下,这些信息将将用于恢复文件名及时间信息。

gzip -d 或者 gunzip 以及 zcat.
可以将压缩后的文件恢复到原始的形式。如果保留在压缩文件中的原始文件名不适合于当前的文件系统,将根据原文件名新建一个合法的文件名。

gunzip 将命令行中以.gz, -gz, .z, -z, _z 或
.Z结尾并具有正确标志头的文件解压缩,并以去掉扩展名的解压缩文件替换原文件。 gunzip 也能识别扩展名为 .tgz
.taz 的文件,并将其分别当作 .tar.gz.tar.Z 的缩写。在压缩时,如果采用 .tar
扩展名则需要对文件名进行截断处理时, gzip 将采用 .tgz 作为扩展名。

gunzip 目前能够解压由 gzip, zip, compress, compress -H 以及 pack
产生的文件。对输入格式的检测是自动的。当采用前两种格式时, gunzip 检查一个32位的CRC校验码。对于 pack,
gunzip
则检查压缩前的数据长度。标准的 compress 格式的设计无法实现一致性检查。但有时 gunzip
仍然能检测到坏的.Z文件。如果你在解压一个.Z文件时出现错误,不要简单地因为标准的 uncompress
没有报错就认定.Z文件是正确的。这通常意味着标准的 uncompress 没有检查它的输入数据,而盲目地产生了错误的输出。SCO的compress
-H格式(lzh压缩方法)不包含CRC校验码,但也允许一些一致性检查。

zip 生成的文件,
如果其内容只有一个文件并且是以'deflation'方式压缩的,则可由gzip解压。这一特性只是为了方便将tar.zip
格式的文件转换为tar.gz格式而加入的。要解压含有多个文件的zip文件,请用 unzip.

zcat 的功能与 gunzip -c. 相同。 (在一些系统中, zcat 可能被安装成
gzcat 以保留 compress 与zcat的原有连接。) zcat
将命令行中列出的文件或由标准输入输入的数据解压,解压后的数据写到标准输出。 zcat 解压具有正确标志头的文件,而不管其是否带有
.gz 后缀。

Gzip 采用 zip 和 PKZIP
中所采用的Lempel-Ziv算法。得到的压缩比依赖于输入数据的大小以及公用子串的分布。例如源程序和英文文档能够压缩60-70%。压缩比通常比LZW(
compress 采用的算法)、Huffman编码( pack 所采用的算法)、以及自适应Huffman编码(
compact) 等方法要好得多。

即使压缩后的文件略大于原文件,压缩也照样进行。最坏的情况下,多出的数据包括
gzip文件头中的若干个字节,加上每块32K的5个字节,或者,对于大文件来说0.015% 的放大率。注意实际占用的硬盘块数目几乎从不增加。
gzip 在压缩和解压缩时保留原文件的属主和时间信息。

选项

-a --ascii
Ascii文本模式:按本地习惯转换行结束符。该选项仅在一些非Unix 系统上有效。对于MSDOS,在压缩时CR
LF(译注:即回车和换行符)被转换为LF,在解压时LF被转换为CR LF。
-c --stdout --to-stdout
将结果写到标准输出;原文件保持不变。如果有多个输入文件,输出将由一系列独立的压缩文件组成。如果想得到较好的压缩率,在压缩前应将多个文件连在一起。
-d --decompress --uncompress
解压缩。
-f --force
强制压缩和解压缩,即使指定文件具有多重连接,或相应文件已经存在,或压缩数据来自或写往一个终端。如果输入数据是 gzip
无法识别的格式,同时在命令行中也给出了--stdout选项,gzip将把输入数据拷贝至标准输出而不做任何改动,就象cat所做的一样。如果未给出
-f 选项,并且未在后台运行, gzip 会提示用户以确认是否覆盖一个已存在的文件。
-h --help
显示帮助信息然后退出。
-l --list
列出每个压缩文件的如下项目:

compressed size:  压缩文件的长度
    uncompressed size:  压缩前文件的长度

    ratio: 压缩率(如果未知则为0.0%)
    uncompressed_name: 压缩前的文件名

对于非gzip格式的文件,压缩前文件长度显示为-1,例如由compress压缩的.Z文件。可用下列命令得到这种文件压缩前的长度:

zcat file.Z | wc -c

如果同时指定了--verbose选项,下列项目也被列出:

method: 压缩方式
    crc: 未压缩数据的32位CRC校验码

    date & time: 压缩前文件的时间信息

目前支持的压缩方式有deflate、compress、lzh(SCO下的compress
-H)以及pack等方式。对于非gzip格式的文件,crc校验码显示为ffffffff。

若指定了--name选项,如果有的话,压缩前文件名,日期以及时间是保存在压缩文件中的内容。

若指定了--verbose选项,还将列出所有文件的长度总和,除非某些文件的长度未知。若指定--quiet选项,将不显示标题和合计两行内容。

-L --license
显示 gzip 的许可证信息然后退出。
-n --no-name
在压缩时,缺省不保留原始文件名和时间信息。(如果必须对文件名作截断处理,则原始文件名总是被保存。)
在解压缩时,即使有也不恢复原始文件名(仅将压缩文件名中的 gzip 后缀去掉)和时间信息(拷贝压缩文件中相应信息)。该选项是压缩时的缺省选项。
-N --name
在压缩时总是保存原始文件名和时间信息;该选项为缺省选项。在解压缩时,如果存在原始文件名和时间信息则恢复之。该选项可用于对文件名长度有限制的系统,以及经过文件传输后丢失时间信息的情况。

-q --quiet
压制所有警告信息。
-r --recursive
递归地访问目录结构。如果命令行中有目录名, gzip 将进入目录并压缩所有找到的文件(如果执行的命令是 gunzip
则对其解压缩)。
-S .suf --suffix .suf
采用.suf后缀取代.gz后缀。可以指定任何后缀,但应避免使用除了.z和.gz以外的其它后缀,以免文件传输到其它系统时发生混淆。一个空后缀将迫使gunzip
解压缩所有文件而不管它具有什么样的后缀,例如:

gunzip -S "" *       (在MSDOS下用*.*替换*)

以前版本的gzip采用.z后缀。为了避免与 pack(1). 冲突,后来作了改动。

-t --test
测试。检查压缩文件的完整性。
-v --verbose
详尽模式。显示每个压缩或解压缩文件的名字和压缩率。
-V --version
版本。显示版本号和编译选项后退出。 Version. Display the version number and compilation
options then quit.
-# --fast --best
用指定的数字 # 调整压缩速度,其中 -1--fast 对应最快压缩方式(压缩率较低),
-9--best 对应最慢压缩方式(压缩率最佳)。缺省的压缩级别为 -6
(也就是说,以速度为代价偏向于高压缩率)。

高级用法

多个被压缩的文件可以连在一起。在这种情况下, gunzip 能一次解压所有文件。例如:

gzip -c file1  > foo.gz
      gzip -c file2 >> foo.gz

然后
      gunzip -c foo

上面的命令等价于

cat file1 file2

如果.gz文件中的某一个文件损坏,其他文件仍可以恢复(如果损坏的文件被删除的话)。而且一次压缩所有文件能得到较好的压缩率:

cat file1 file2 | gzip > foo.gz

上面用法的压缩率比下面用法的高:

gzip -c file1 file2 > foo.gz

如果想重新压缩连接起来的文件以得到较高的压缩率,可以用下面的命令:

gzip -cd old.gz | gzip > new.gz

如果一个压缩文件由多个文件组成,--list选项只能列出最后一个成员的解压后文件长度和CRC校验码。如果需要所有成员的解压后文件长度,可用如下命令:

gzip -cd file.gz | wc -c

如果想要产生一个具有多个成员的存档文件,以便将来能够独立地取出其中的成员,可以用tar或zip这样的归档软件。GNU
tar支持-z选项,可直接调用gzip。gzip设计为 tar的补充,而非它的取代物。

环境变量

环境变量 GZIP 能够控制一系列 gzip
的缺省选项。这些选项被首先解释,并且能被命令行参数中的直接定义覆盖。例如:

      在sh下:    GZIP="-8v --name"; export GZIP

      在csh下:   setenv GZIP "-8v --name"

      在MSDOS下: set GZIP=-8v --name

在Vax/VMS系统中,为了避免与调用该程序的符号设置冲突,该环境变量名为GZIP_OPT。

gzip, gunzip, zcat - 压缩或展开文件的更多相关文章

  1. Centos-gizp压缩文件-gzip gunzip

    gzip gunzip 将一般文件进行压缩或者解压,默认扩展名为 .gz, 本质上 gunzip是gzip硬链接,压缩和解压都可以通过gzip完成 gzip 相关选项 -d 解压 -r 递归压缩目录下 ...

  2. (23)gzip命令:压缩文件或目录&&gunzip命令:解压缩文件或目录

    1.gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,通过此命令压缩得到的新文件,其扩展名通常标记为".gz". 再强调一下,gzip 命令只能用来压缩文件,不 ...

  3. Linux命令(十八) 压缩或解压缩文件和目录 gzip gunzip

    目录 1.命令简介 2.常用参数介绍 3.实例 4.直达底部 命令简介 和 zip 命令类似,gzip 用于文件的压缩,gzip压缩后的文件扩展名为 ".gz",gzip默认压缩后 ...

  4. Linux06 文件的打包和压缩(gzip/gunzip、tar、bzip2)

    一.gzip/gunzip 这是用于压缩和解压单个文件的工具,且使用方法比较简单 gzip  文件名 gunzip  文件名 二.tar(用的比较多) 不仅可以用于打包文件,还可以将整个目录中的全部文 ...

  5. Linux下的压缩和解压缩命令——gzip/gunzip

    gzip命令 gzip命令用来压缩文件.gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处".gz"扩展名. gzip是在Linux系统中经常使用的一个对文件进行压 ...

  6. linux笔记:压缩解压命令gzip,gunzip,tar,zip,unzip,bzip2,bunzip2

    命令名称:gzip功能:压缩文件命令所在路径:/bin/gzip用法:gzip 文件压缩后文件格式:.gz其他:压缩后不保留原文件:只能压缩文件,不能压缩目录 命令名称:gunzip功能:解压.gz格 ...

  7. Linux下的压缩和解压缩命令gzip/gunzip

    作者:邓聪聪 Linux下的压缩和解压缩命令——gzip/gunzip yum -y install zip gzip (--安装压缩工具) gzip命令 gzip命令用来压缩文件.gzip是个使用广 ...

  8. GZip压缩的js文件IE6下面不能包含<script>标签

    IE6下面,GZip压缩的js文件,如果js中包含<script>标签,一遇到这样的标签,后面的内容居然都截断了,狂晕! 花了我一个晚上来找原因.. 需要将字符串'<script&g ...

  9. Web网站配置Gzip,压缩js css文件

    启用apache的gzip 找到httpd.conf,打开文件找到对mod_deflate的注释 #LoadModule deflate_module modules/mod_deflate.so 去 ...

随机推荐

  1. Json.net的常用语句JsonConvert.SerializeObject(对象)

    在ajax的已不请求中,常常返回json对象.可以利用json.net给我们提供的api达到快速开发. 例子: using System;using System.Collections;using ...

  2. 使用HTML辅助方法载入分部视图

    在webform中我们用过user control可以减少重复代码也利于将页面模组化, 在mvc中 叫分部视图 Partial View.   也就是一个片段的view.可以利用Partial vie ...

  3. nginx是如何处理一个请求的(包含https配置)

    配置https首先要有ssl证书,这个证书目前阿里有免费的,但如果自己做实验,也是可以自签证书,只不过不受信 openssl genrsa -des3 -out server.key 1024     ...

  4. 谷歌同声翻译Translatotron原理

    背景介绍 作为中国人,学好英语这件事从小学开始就让人苦恼,近些年随着AI的快速发展,语言差异是否会缩小甚至被消灭成了热门话题.在5月15日,谷歌AI在博客平台发出一篇文章,正式介绍了一款能保留原声的& ...

  5. 分类---Logistic Regression

    一 概述 Logistic Regression的三个步骤 现在对为什么不使用均方误差进行分析(步骤二的) 由上图可以看出,当距离目标很远时,均方误差移动速率也很慢,不容易得到好的结果. Discri ...

  6. excel 恢复忘记保存的文档

    如果在做Excel的过程遇见突发情况忘记保存文件,那么不要担心,你再次打开这个文件时会有提示,你只需要点击恢复文件即可. 假设因为某些原因,你不小心点了关闭,或者你不知道那个关闭按钮是什么意思,所以就 ...

  7. cf813C(bfs)

    题目链接:http://codeforces.com/problemset/problem/813/C 题意:给出一颗树,开始时两个人 Alice 和 Bob 分别站在 1(树根)和 x 处.此后每一 ...

  8. 洛谷P4318 完全平方数(容斥,莫比乌斯反演)

    传送门 求第$k$个没有完全平方数因数的数 一开始是想筛一波莫比乌斯函数,然后发现时间复杂度要炸 于是老老实实看了题解 一个数的排名$k=x-\sum_{i=1}^{x}{(1-|\mu(i)|)}$ ...

  9. 洛谷P4213 【模板】杜教筛(Sum)(杜教筛,莫比乌斯反演)

    传送门 坑着,联赛活着回来再填(死了就不填了) // luogu-judger-enable-o2 //minamoto #include<iostream> #include<cs ...

  10. python 之 包的使用

    6.8 包的使用 包就是一个包含有init.py文件的文件夹,所以其实我们创建包的目的就是为了用文件夹将文件/模块组织起来 强调: 在python3中,即使包下没有__init__.py文件,impo ...