压缩的目的
时间换空间
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博客,转载请务必保留此出处。