[关闭]
@1405010304geshuaishuai 2017-07-15T04:11:36.000000Z 字数 1396 阅读 537

Linux常见压缩命令之gzip

Linux 压缩


  1. *.Z compress 程序压缩的档案
  2. *.zip zip程序压缩的档案
  3. *.gz gzip程序压缩的档案
  4. *.bz2 bzip2程序压缩的档案
  5. *.xz xz程序压缩的档案
  6. *.tar tar程序打包的资料,并没有压缩过
  7. *.tar.gz tar程序打包的资料,其中并且通过gzip的压缩
  8. *.tar.bz2 tar程序打包的资料,其中并且通过bzip2的压缩
  9. *.tar.xz tar程序打包的档案,其中并且经过xz的压缩

Linux上最常见的压缩指令就是gzip, bzip2以及最新的xz,至于compress已经退流行了。
单纯的tar功能仅是“打包”而已,亦即是将很多档案集结成为一个档案,事实上,他并没有提供压缩的功能,后来,将整个tar与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能!


gzip, zcat/zmore/zless/zgrep

gzip可以说是应用度最广的压缩指令了!目前gzip可以解开compress,zip与gzip等软件所压缩的档案。至于gzip所建立的压缩档为*.gz的档名哦!

  1. $ gzip [-cdtv#] 档名
  2. $ zcat 档名.gz
  1. 选项与参数:
  2. -c : 将压缩的资料输出到屏幕上,可以通过资料流导向来处理;
  3. -d : 解压缩的参数;
  4. -t : 可以用来检验一个压缩档的一致性~看看档案有无错误;
  5. -v : 可以显示出原档案/压缩档案的压缩比等咨询;
  6. -# : #为数字的意思,代表压缩等级, -1 最快,但是压缩比最差,-9 最慢, 但是压缩比最好!预设是6

在预设的状态下原本的档案会被压缩成.gz的档名,原始档案就不再存在了。

范例1: 找出 /etc 底下(不含子目录)容量最大的档案,并将它复制到/tmp,然后以gzip压缩
首先找出最大的文档,命令如下:
compress_1
获得的结果部分截图如下:
compress_2
我们从图中可以看出最大的为etc/services,将此文件复制到tmp目录下并压缩
compress_3

范例2:由于servies是文字档,请将范例1的压缩档的内容读出来!
如果压缩的是文字档,我们可以尝试使用zcat/zmore/zless去读取
此时屏幕上会显示该压缩文档解压缩之后的原始档案内容!
compress_4

范例3:将范例1的档案解压缩
compress_5
gzip -d *.gz 与gzip相反, gzip -d会将原来的.gz删除,恢复到原来的services档案

范例4:将范例3解开的services用最佳的压缩比压缩,并保留原来的档案
compress_6

范例5:由于范例四再次建立的services.gz中,找出http这个关键字在哪几行?
compress_7


总结:

其实gzip的压缩已经最佳化过了,使用预设值就非常好用了!
范例4的重点在那个-c与(>)这个符号,系那个原本应该有显示器输出的资料,转成输出到档案而不是显示器,所以就能够建立出压缩档了。只是档名也要自己写,当然最好还是遵循gzip的压缩档名要求较佳。

cat/more/less可以使用不同的方式来读取纯文字档,那个zcat/zmore/zless则可以对应于cat/more/less的方式来读取纯文字档被压缩后的压缩档!由于gzip这个压缩指令主要想要用来取代compress的,所以不但compress的压缩档案可以使用gzip来解开,同时zcat这个指令可以同时读取compress与gzip的压缩档。
如果你想从文字压缩档中找资料的话,可以通过zgrep来搜寻关键字,而不需要将压缩档解开才以grep进行!

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注