Linux常见压缩格式Tar、Zip和Gz格式之不同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常见压缩格式Tar、Zip和Gz格式之不同相关的知识,希望对你有一定的参考价值。

参考技术A Tar、Zip 和 Gz 之间的不同用最为简洁的描述来说可归纳为:

与 Unix 和类 Unix 系统一样,故事开始于很久之前的七十年代。1979 年 1 月的一个清晨,Tar 实用程序首次作为 Unix V7 的一部分正式面世。Tar 程序当时主要被设计为往磁带上批量高效写入文件的一种方式。现在,虽然现在大多数 Linux 用户都已经不知道磁带驱动器是什么鬼了,但 tarballs(tar 的昵称)仍被常用于将多个文件甚至整个目录树打包到单一文件当中。

需要 Linux/Unix 用户注意的是,普通的 tar 格式文档只进行归档操作而不进行压缩。换句话说就是,如果你 tar 100 个 50kb 的文件得到的 tar 归档文件大小应该为 5000kb 左右。

使用 Tar 进行文件归档的唯一好处就是减少某种粒度磁盘空间的分配。(例如在簇大小为 4kb 的磁盘上 1 字节的文件也要占用 4kb 磁盘空间,若有 1000 个 1 字节的文件分散在此磁盘上的话,则会占用 4MB 大小,而使用 Tar 归档之后则只占用 1MB 左右大小。)

值得一提的是,tar 并非 Linux/Unix 中创建归档文件的唯一方式。程序员朋友应该知道 ar,它大多情况下主要用于创建静态库,实际它也是可用来创建其它种类归档的,例如 Debian 系统中使用的 .deb 包文件就是 ar 存档。而 macOS 的 mpkg 包是使用 gzip 压缩的 cpio 档。不过 ar 和 cpio 用起来不像 Tar 这样友好、简单,所以 tar 的受欢迎程度更高,普及更广。

虽然归档是种不错的选择,但随着时间的推移和个人 PC 时代的到来,人们意识到可通过压缩数据的方式来大量节省存储成本。所以 10 年后随 MS-DOS 出现的 zip 文档便是支持压缩的归档格式,zip 最常见的压缩方式是采用 LZ77 算法 实现的 deflate。由于它由 PKWARE 商业开发,所以 zip 格式也受专利保护多年。因此,为不侵犯到 PKWARE 的专利,同样采用 LZ77 算法的 gzip 格式被推出并广泛使用。

Unix 的哲学就是 把某事做到最好 ,所以 gzip 只被设计为压缩文件。因此,为了创建压缩归档,必需先使用 tar 创建归档,之后再对归档文件进行压缩,因此才有了 .tar.gz 文件(为遵循 8.3 MS-DOS 文件名称限制,又被简称为 .tgz)。

随着技术的不断发展,具有更高压缩比的压缩算法也一一被实现,例如:在 bzip2 中实现的 Burrows-Wheeler 算法 (.tar.bz2 存档)和 LZMA 算法 实现的 .xz 存档。

现在,用户已经可以在 Linux 和 Windows 中自由使用任何归档文件格式。由于 zip 格式已经被 Windows 操作系统原生支持,因此这种格式特别适合跨平台环境。

linux下常见解压缩命令

linux下常见的压缩文件格式有tar、gz、tar.gz、tar.bz2、zip等等。对于不同的压缩文件格式有对应的解压缩命令。下面就对此小结一下:

1、后缀为.tar 用 tar –xvf 解压
2、后缀为.gz 用 gzip -d或者gunzip 解压
3、后缀为.tar.gz和*.tgz 用 tar –xzf 解压
4、后缀为.bz2 用 bzip2 -d或者用bunzip2 解压
5、后缀为.tar.bz2用tar –xjf 解压
6、后缀为.Z 用 uncompress 解压
7、后缀为.tar.Z 用tar –xZf 解压
8、后缀为.rar 用 unrar 解压
9、后缀为.zip 用 unzip 解压#若是提示不存在则yum install -y zip unzip

 

以上是关于Linux常见压缩格式Tar、Zip和Gz格式之不同的主要内容,如果未能解决你的问题,请参考以下文章

linux下常见解压缩命令

Linux 常见命令 压缩解压命令

Linux压缩与解压缩命令

Linux 达人养成计划学习笔记(6-压缩命令)

Linux压缩与解压缩

Linux中的压缩命令