1、压缩打包介绍

文件压缩之后,占用的空间变小,方便传输,也可以节省磁盘空间。
常见的压缩文件:
Windows .rar .zip .7z
Linux .zip .gz .bz2 .xz .tar.gz .tar.bz2 .tar.xz

2、gzip压缩工具

压缩打包介绍及gzip、bzip2、xz、zip压缩工具

gzip压缩文件比较简单,直接跟文件名即可,先做一下准备工作,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
可以看到出现了很多后缀名称为 .conf 的文件,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
接下来把这些文件全部输出到一个文件里,并且查看大小,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
多追加几次,增加文件 1.txt 的大小,会发现大小增加的不太正常。这边要注意一下,最后的2.2M大小是不太准确的,里面有一些虚的空间。这个不用太在意,接着往下做实验,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
使用gzip压缩完文件之后,发现原来的文件1.txt不见了,取而代之的是文件1.txt.gz ,查看大小才332K。接着解压文件1.txt.gz,发现文件又恢复成1.txt了,再查看大小就变成1.3M了。这就是上面说的虚的空间,经过压缩和解压之后就不见了。现在不妨再查看一下行数,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
可以看到行数是不变的,说明空间变小不是因为删除内容而变小的,是因为确实存在一些虚的空间。
gzip压缩的用法里面有一个选项,1至9表示压缩的级别,具体用法见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
可以看到压缩级别为1的时候,大小是392K,比默认压缩级别的大小大一些,一般默认级别是6,这边保持默认就可以了。
还有一个解压的命令 gunzip ,用法见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
上图中尝试了9和6级别的压缩,可以看到压缩后文件的大小是一样的,这边说明一个问题文件压缩到一定层次,就不会再变小了。
压缩后的文件,无法使用cat命令查看,type命令也不行,需要使用file命令,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
最上面那些字符是使用cat命令查看出现的乱码,使用type命令会显示找不到,而使用file命令,就会显示被压缩前的文件是1txt,基于Unix平台,压缩的时间是2018年1月18日21:15:14等内容。
cat命令查看不了,还可以使用zcat命令,输入 zcat 1.txt.gz ,回车,出现几万行的内容,这边就不截图了。这个命令的原理是先解压再cat查看。
还有一个选项-c,可以保留原文件,在指定的目录下生成新的压缩文件,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
解压的时候,也可以使用-c来保留压缩文件,在指定的目录下生成新的解压文件,并且解压文件的名字是可以更改的,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具

这边有个注意事项,gzip不能压缩目录。

3、bzip2压缩工具

压缩打包介绍及gzip、bzip2、xz、zip压缩工具

bzip2 压缩后的文件大小比 gzip 压缩后的文件小,它们俩的算法不一样,且 bzip2 耗费 cpu 的资源比较多。接下来做实验,没有找到 bzip 命令,就安装一个,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
安装完毕,输入命令,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
上图可以看出,使用bzip2命令压缩后,占用的大小是160K,上面使用gzip命令压缩后,占用的大小是332K,很明显,bzip2压缩的文件大小比较小。
同样的,解压使用选项-d选项或是bunzip2命令,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
同样的, bzip2也不能压缩目录。也有一个选项-c,可以保留原文件,在指定的目录下生成新的压缩文件。解压的时候,也可以使用-c来保留压缩文件,在指定的目录下生成新的解压文件,并且解压文件的名字是可以更改的,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
同样的,bzip2 也有压缩级别,默认的压缩级别是9,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
也可以使用 file 查看压缩文件,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
上图中 text 表示普通的文本文档,而下图的 binary 表示二进制文件。其他情况,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
这边也可以使用bzcat查看文件,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
输入上图命令后,回车,即可查看,内容太多,不截图了。

4、xz压缩工具

压缩打包介绍及gzip、bzip2、xz、zip压缩工具

xz压缩的用法和上面两种的用法基本上是一样的,但是xz压缩工具用的较少。见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
xz压缩后的文件更小,只有60K,显然耗费的 cpu 更多,默认的压缩级别是6 。这个压缩级别不用纠结,按默认的来就可以了。
xz 也不支持目录压缩,其他用法,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
输入上图命令后,回车,即可查看,内容太多,不截图了。

5、zip压缩工具

压缩打包介绍及gzip、bzip2、xz、zip压缩工具

前面提到的几个压缩工具,都不支持压缩目录,zip 就可以压缩目录。
既然支持压缩目录,那就先拷贝一个目录进来,具体操作,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
接着把 4.txt 文件放入 lyslinux/2/ 里,使目录内容比较大,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
接着在压缩文件的时候,发现zip命令没有安装,输入命令 yum install -y zip ,回车,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
然后压缩文件,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
可以看到 2.txt.zip 的大小是332K 。 其中,压缩文件最后显示的大小,与文件的内容和类型是有关系的,与压缩工具类型没有直接关系,这边注意一下。
接下来压缩目录,需要加上 -r ,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
使用 zip 压缩,有一个特点,原来的文件不会删除,这与前面的三个工具不同。
解压缩使用命令 unzip ,发现没有安装,也需要安装一下,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
安装完成之后,输入命令 unzip lys.zip ,回车,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
会发现,跳出来好多询问,这是因为zip压缩的时候,不会删除原文件,解压过程中就会出现相同的文件,所以需要询问一下要不要覆盖原来的文件。n 是不要覆盖,y 是要覆盖,A 是全部覆盖,N 是全部不覆盖,r 是重命名。
unzip 也可以指定解压的路径,如果不指定,就是在当前目录下。
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
先创建一个目录 test,然后使用 -d 选项将压缩文件解压到指定目录 test 里面,结果是解压成功了。后面想要在解压的时候重命名为 aa.txt ,结果是直接创建了一个名为 aa.txt 的目录,在 aa.txt 目录下有一个 2.txt 文件。说明 zip 压缩工具,在解压的时候是不能更改文件名的。
zip 压缩包也是不能直接查看内容的,不过可以使用命令 unzip -l lys.zip ,查看压缩包里面的文件列表,见下图,
压缩打包介绍及gzip、bzip2、xz、zip压缩工具
以上就是 zip 压缩工具的用法。