linux常见压缩格式详解

2,887 阅读4分钟

linux 文件压缩格式详解

压缩文件原理

在计算机科学和信息论中,数据压缩或者源编码是按照特定的编码机制用比未经编码少的数据比特(或者其它信息相关的单位)表示信息的过程。例如,如果我们将“compression”编码为“comp”那么这篇文章可以用较少的数据位表示。常见的例子是ZIP文件格式,此格式不仅仅提供压缩功能,还可作为归档工具(Archiver),能够将许多文件存储到同一个文件中。

简单的说,就是经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。 压缩文件的基本原理是查找文件内的重复字节,并建立一个相同字节的"词典"文件,并用一个代码表示,比如在文件里有几处有一个相同的词"中华人民共和国"用一个代码表示并写入"词典"文件,这样就可以达到缩小文件的目的。

常见的压缩格式

  • zip

ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为application/zip。当前,ZIP格式属于几种主流的压缩格式之一,其竞争者包括RAR格式以及开放源码的7z格式。从性能上比较,RAR及7z格式较ZIP格式压缩率较高,而7-Zip由于提供了免费的压缩工具而逐渐在更多的领域得到应用。Microsoft从Windows ME操作系统开始内置对zip格式的支持,即使用户的计算机上没有安装解压缩软件,也能打开和制作zip格式的压缩文件,OS X和流行的Linux操作系统也对zip格式提供了类似的支持。因此如果在网络上传播和分发文件,zip格式往往是最常用的选择。

  • gzip

Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。在1992年10月31日第一次公开发布,版本号0.1,1993年2月,发布了1.0版本

  • bzip2

bzip2是Julian Seward开发并按照自由软件/开源软件协议发布的数据压缩算法及程序。Seward在1996年7月第一次公开发布了bzip2 0.15版,在随后几年中这个压缩工具稳定性得到改善并且日渐流行,Seward在2000年晚些时候发布了1.0版。

  • 7z

在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的文件格式。该格式最初被7-Zip实现并采用,但是这种文件格式是公有的,并且7-Zip软件本身亦在GNU宽通用公共许可证 (GNU LGPL)协议下开放源代码。当前LZMA软件开发工具包的最新版本为v15.12。

  • rar

RAR是一种专利文件格式,用于数据压缩与归档打包,开发者为尤金·罗谢尔(俄语:Евгений Лазаревич Рошал,拉丁转写:Yevgeny Lazarevich Roshal),RAR的全名是“Roshal ARchive”,即“罗谢尔的归档”之意。首个公开版本RAR 1.3发布于1993年。

尤金·罗谢尔,1972年3月10日生于俄罗斯。毕业于俄罗斯车里雅宾斯克工业大学(Chelyabinsk Technical University,今南乌拉州立大学),也是FAR文件管理器的作者。他开发程序压缩或解压RAR文件,最初用于DOS,后来移植到其它平台。主要的Windows版本编码器,称为WinRAR,以共享软件的形式发行。不过罗谢尔公开了解码器源码,UnRAR解码器许可证以不许发布编译RAR兼容编码器为条件下允许有条件自由发布与修改,而RAR编码器一直是有专利的。

最近的开发者是尤金·罗谢尔的胞兄亚历山大·罗谢尔。虽然其解码器有专利,编译好的解压程序仍然存在于若干平台,例如开源的7-Zip。

常见的压缩文件压缩和解压缩

文件后缀名 说明 压缩 解压缩
*.zip zip 程序打包压缩的文件 zip fileName.zip dirName unzip fileName.zip
*.rar rar 程序压缩的文件 rar a fileName.rar dirName rar x fileName.rar
*.7z 7zip 程序压缩的文件 7z a fileName.7z dirName 7z x fileName.7z
*.tar tar 程序打包,未压缩的文件 tar cvf fileName.tar dirName tar xvf fileName.tar
*.gz gzip 程序 (GNU zip) 压缩的文件 gzip fileName gzip -d fileName.gz
*.bz2 tar 打包,gzip 程序压缩的文件 bzip2 -z FileName bzip2 -d FileName.bz2
*.tar.gz tar打包,gzip程序压缩的文件 tar zcvf FileName.tar.gz dirName tar zxvf FileName.tar.gz
*.tar.xz tar打包,xz程序压缩的文件 tar cvJf fileName.tar.xz dirName tar -xvJf fileName.tar.xz
*.tar.bz2 tar打包,bzip2程序压缩的文件 tar jcvf FileName.tar.bz2 dirName tar jxvf FileName.tar.bz2
*.Z compress命令解压缩rar文件 compress fileName uncompress fileName.Z