压缩的目的
时间换空间
CPU的时间 –> 磁盘空间
常见的压缩文件拓展名:
|
|
Linux上常见的压缩命令就是gzip和bzip2,还有新兴的xz,至于compress已经”退环境”了,不再适合当前的版本了。
压缩与解压缩工具
compress这个压缩工具是非常老旧的一款,我们现在使用的 CentOS6.8 与 CentOS7 默认都没有安装这个软件到系统当中。如果想在系统中使用,需要先安装 ncompress 这个软件才可以。
|
|

安装完成之后,我们就可以开始使用 compress 软件来对文件进行压缩/解压缩的操作了!
|
|

注意:从上图我们可以看出,compress 在压缩文件时,会自动删除原文件。我们使用-c选项,并把标准输出中的内容重定向至一个压缩文件中,这样我们即压缩了文件,又保留了原文件,岂不美哉~
还有一个小tips,就是使用 zcat 命令可以查看 compress 压缩的文件内的文本内容
|
|
gzip 可以说是Linux中应用最广泛,使用最多的压缩命令了。使用 gzip 创建的压缩文件的后缀是 *.gz
|
|

与 compress 类似,使用 gzip 压缩文件后,会自动把原文件删除,所以日常使用时我们要在 gzip 后面加上 -c 选项,再重定向至压缩文件中,这样我们即压缩了文件,也保留了原文件。
而且我们可以对比 compress 看出, gzip 的压缩比明显更好,压缩后的文件占用空间更少;我们还可以使用 zcat 查看压缩后的文件中的内容。
如果说 gzip 是为了替代 compress 出现的,那么 bzip2 就是为了替代 gzip 出现的。 bzip2 的压缩比比 gzip 还要好,但是目前来说使用最广泛的还是 gzip。
让我们看看如何使用 bzip2 吧!
|
|

使用方法与 gzip 其实并没有什么区别,只是要查看使用 bzip2 压缩的文件内的文本内容,就需要使用 bzcat 这个命令来查看了。
xz 是一个使用 LZMA/LZMA2 压缩算法的无损数据压缩文件格式。和 gzip 与 bzip2 一样,同时支持多文件压缩,但是不能将多于一个目标文件压缩进同一个档案(包)里。xz 生成的压缩文件比 gzip/bzip2 生成的压缩文件更小,而且压缩速度也很快。其生成的压缩文件扩展名为 *.xz
|
|

由于压缩的文件比较小,所以对比 gzip/bzip2 的优势不是那么明显,但是也还是可以看出 xz 以略微的优势占领了上风。
使用 xzcat同样可以看到压缩后文件内的文本内容。
打包(归档)命令
上面我们说完了压缩/解压缩命令,但是前面的命令只能压缩单一文件,而不能对目录进行压缩的操作。
下面我们讲一讲,如何使用打包命令将目录包成一个大文件。
tar 可以将多个目录或文件打包成一个大文件,同时它还可以搭配 gzip/bzip2/xz 将此大文件进行压缩。
tar 的参数非常多,下面只列取一些常用的选项
|
|
其实,在生产环境与日常操作练习时,我们只需使用以下的几种方式即可:
|
|
由于现在流行使用的压缩工具大多是 gz 格式的,我们这里就列举了 gz 的三种操作方法。至于其他两种,替换 -z 即可。

上图中,我们可以看到有三个归档文件,是三种不同类型的,我执行了以下的命令:
|
|
通过对比,明显看出 xz 的优势蛮大的,bzip2 与 gzip 倒是不分伯仲。
当我们把/etc目录归档好了之后,就可以使用 -t 选项查看我们备份了哪些目录和文件了。

不过由于文件内容过多,我们只取前10行的内容。
现在我们想把其中的 etc/fstab 文件取出来,就可以使用 tar -zxcf etc.tar.gz etc/fstab 命令取出文件了!

这样,我们就把归档文件内的 etc/fstab 文件单个取出来来啦!
下面我们将把 etc.tar.gz 文件解压到 /tmp 目录下,这时就需要使用 -C 选项了。

注意 -C 选项的位置,在归档文件名之后,目标位置之前。
本文出自Maxie’s Notes博客,转载请务必保留此出处。

