Linux之文件压缩的简单介绍gzip,bzip2,xz

这一节主要介绍两个部分

  1. 文件压缩的主要原理与用途

  2. 常用压缩指令的使用与对比

文件压缩的主要原理与用途

文件压缩的重要性不言而喻,尤其是网站下载文件的时候,好的压缩技术不仅可以节省存储空间,还可以大大降低网络负荷,毕竟任何网站维护者都不想自己的网站一直满负载吧,从事IT工作的日常生活中文件压缩也无处不在,节省空间、速度、时间。好了,不絮叨了,总之文件压缩意义非常,下面介绍两种主要的文件压缩技术:

  1. 计算机存储说到底是利用二进制存储0或1,计算机最小的存储单位是“位”也就是bits,每个字节(Byte)有8bits,而我们计算机存取机制是以块为单位的,举个简单的例子,假设计算机以1Byte为单位存取,而文件只使用了次块的1个bit,其他7个bits就浪费了,而我们一般的文件占据存储空间的时候,有很多这样的事件发生,也就是说一个文件的大小可能并没有你表面看到的那么大,一些聪明的计算机工程师使用复杂的计算公式,那没有用到的空间”释放出来“,这就是文件压缩的技术了

  2. 另一种压缩技术也很有趣,举个例子说一下吧,假设你的文件有20个二进制1要存储,那么压缩技术就会存储“20个1”,而不是真的有20个1的位存在,这种技术也可以很好的精简文件

常见压缩指令的使用与对比

这一节主要介绍三种类型的压缩文件

*.gz gzip 程序压缩的文件;

*.bz2 bzip2 程序压缩的文件;

*.xz xz 程序压缩的文件;

在linux中文件的扩展名与文件没有什么关系,在这里只是为了区分压缩指令对应的压缩文件。毕竟不同的压缩指令彼此之间无法互通压缩解压文件。

gzip, zcat/zmore/zless/zgrep

gzip是应用度最广的压缩指令,目前gzip可以解开compress,zip与gzip等软件所压缩的文件,gzip创建的压缩文件是*.gz的文件名,看一下语法:

root@ubuntu:~# gzip [-cdtv#] filename

选项与参数:

-c :将压缩的数据输出到屏幕上,可通过数据流重导向来处理;

-d :解压缩的参数;

-t :可以用来检验一个压缩文件的一致性~看看文件有无错误;

-v :可以显示出原文件/压缩文件的压缩比等信息;

-# :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6

示例一:使用gzip压缩解压缩

Linux之文件压缩的简单介绍gzip,bzip2,xz

gzip

由图可以看出,gzip直接压缩文件是不保留原文件的,如果要保留原文件的话需要加上-c参数,并且使用数据流重导向到新的文件,61.6%是压缩比例,即压缩后的文件是原文件的(1-61.6%),-d参数是对文件解压缩。

cat/more/less 可以使用不同的方式来读取纯文本文件,那个 zcat/zmore/zless 则可以对应于 cat/more/less 的方式来读取纯文本文件被压缩后的压缩文件!

bzip2, bzcat/bzmore/bzless/bzgrep

bzip2是比gzip提供更好的压缩比,bzip2压缩用法与gzip几乎相同

root@ubuntu:/tmp# bzip2 [-cdkzv#] filename

选项与参数:

-c :将压缩的过程产生的数据输出到屏幕上!

-d :解压缩的参数

-k :保留原始文件,而不会删除原始的文件喔!

-z :压缩的参数 (默认值,可以不加)

-v :可以显示出原文件/压缩文件的压缩比等信息;

-# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

xz, xzcat/xzmore/xzless/xzgrep

虽然 bzip2 已经具有很棒的压缩比,不过显然某些自由软件开发者还不满足,因此后来还推出了 xz 这个压缩比更高的软件!

root@ubuntu:/tmp# xz [-dtlkc#] filename

选项与参数:

-d :就是解压缩啊!

-t :测试压缩文件的完整性,看有没有错误

-l :列出压缩文件的相关信息

-k :保留原本的文件不删除~

-c :将数据由屏幕上输出!

-v :可以显示出原文件/压缩文件的压缩比等信息;

-# :压缩比!

由于bzip2与xz压缩软件的用发与gzip几乎相同,就不再另行举例子,有兴趣的朋友们可以自己玩一下,下面来对比一下三种压缩指令的压缩比,看图

Linux之文件压缩的简单介绍gzip,bzip2,xz

gzip、bzip2、xz压缩比

怎么样是不是压缩比xz>bzip2>gzip啊,可是虽然xz压缩比好很多,但是压缩时间却是xz>bzip2>gzip,gzip时间上是最优的,大家可以根据自己情况选择不同的压缩方式哦!

下一节会接着此节内容介绍Linux的打包指令tar,感兴趣的朋友可以关注一下,谢谢!!!


分享到:


相關文章: