概述

对于刚刚接触 Linux 的人来说,一定会给 Linux 下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在 Windows 下最常见 的压缩文件就只有两种:一是 zip,另一个是 rar。可是 Linux 就不同了,它有 .gz、.tar.gz、.bz2、.Z、.tar 等众多压缩文件名,此外 Windows 下的 zip 和 rar 也可以在 Linux 下使用,不过在 Linux 使用 zip 和 rar 的人就太少了。

本文就来对这些常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕。

为什么要有压缩文件

文件对于操作系用的重要性不言而喻,Unix 更是基于文件管理的系统,我们来想一下普通用户都会用到的场景,假设你需要往 U盘里拷贝 100 个 Excel 文件,我们当然可以 Ctrl+A 全选、Ctrl+C 复制最后到 U盘中 Ctrl+V 粘贴,一顿操作猛如虎。

但若想把这 100 个文件通过 QQ 发送给朋友,你若图省事儿一股脑全拖到聊天窗口发送,估计网线那头的朋友会抓狂,他需要一个个的接收、另存… …

那么问题来了,有没有一种简单有效的方法来进行文件传输?

答案是肯定的,那就是:打包它!

划重点:注意不是压缩!

什么是压缩文件

在具体总结各类压缩文件之前呢,首先要弄清两个概念:打包和压缩。为什么要区分这两个概念呢?其实这源于 Linux 中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。

打包

打包是指将一大堆文件或目录什么的变成一个总的文件。tar、zip 都有打包功能。不改变文件大小,就是打个包,变成一个文件的文件夹,解压速率也很快。

压缩

压缩是将一个大的文件通过一些压缩算法变成一个小文件,顾名思义,通常说的 rar、tar 等这些大多都是格式,而不是算法。

多数人电脑上装有是 WinRAR、7z、BandZip 等解压软件,它们也能兼容市面上的多数格式。

常见压缩格式介绍

rar、tar、zip、7z 是归档容器,里面可以放多个文件、有目录结构。

tar 本身是一个文件打包备份的工具,没有自身的压缩功能。通常的使用方式为打包后再调用其他压缩库进行文件压缩。比较适合 Linux 系统,保持文件权限状态、软硬链接能力强。

zip 是公开的一种压缩算法,压缩比目前相对不太高。

gz,gzip 是 GNU 组织开发的一个压缩程序,.gz 结尾的文件就是 gzip 压缩的结果。与 gzip 相对的解压程序 gunzip。

rar 是带专利的商业算法,压缩比目前比较高。

bz2 是 Linux 下常见的压缩文件格式,是由具有高压缩率的压缩工具 bzip2 生成,以后缀为 .bz2 结尾的压缩文件。

Z,compress也是一个压缩程序,.Z 结尾的文件就是 compress 压缩的结果。与 compress 相对的解压程序是 uncompress 。

Linux 的 tar 命令

Linux 下最常用的打包程序就是 tar 了,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件的命令通常都是以 .tar 结尾的。生成 tar 包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar 命令的基本用法。

必须的参数:(不能共存) -c,创建压缩文件。c 代表 create。 -x,解压缩文件。 -t,查看压缩包里面的文件。 -r,向压缩归档文件末尾追加文件 。 -u,更新原压缩包中的文件。

辅助参数:(可用一个或多个) -z,用 gzip 压缩/解压缩。 -j,用 bzip2 压缩/解压缩。 -v,显示压缩/解压缩的进度条。 -f,使用档案文件或设备,这个选项通常是必选的(注意:f后面不要接参数,也就是说-zxfv是不对的,要写成-zxvf)。 -O,将文件解开到标准输出。

小结

格式 说明
*.tar 用 tar –xvf 解压
*.gz 用 gzip -d 或者 gunzip 解压
*.tar.gz 用 tar –xzf 解压
*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d 或者用 bunzip2 解压
*.tar.bz2 用 tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用 tar –xzf 解压
*.rar 用 unrar 解压
*.zip 用 unzip 解压

到此为至,我们已经介绍过 Linux 下的 tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、 zip、unzip、rar、unrar等程序,你应该已经能够使用它们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、. Z、.tar.Z、.zip、.rar 这 10 种压缩文件进行解压了,以后应该不需要为下载了一个软件而不知道如何在 Linux 下解开而烦恼了。