解压打包练习题及扩展

1.gzip, bzip2 能否直接压缩目录呢?
答: 不能, 如果想压缩目录可以使用 zip 压缩

2. 请快速写出,使用 gzip 和 bzip2 压缩和解压一个文件的命令。
答:

gzip filename		//使用gzip压缩
gzip -d filename	//gzip解压
bzip filename		//使用bzip压缩
bzip -d filename	//bzip解压

3.tar 在打包的时候,如果想排除多个文件或者目录如何操作?
答: 使用 –exclude filename 即可。

4. 请实验,如果不加 “-” 是否正确, 如 tar zcvf 1.tar.gz 1.txt 2.txt ?
答: 正确

5. 如何使用 tar 打包和解包 .tar.gz, .tar.bz2 的压缩包?

tar -czvf test.tar.gz dl		//打包.tar.gz
tar -xzvf test.tar.gz			//解压.tar.gz			
tar -cjvf test.tar.bz2 dl		//打包.tar.bz2
tar -xzvf test.tar.bz2			//解压.tar.bz2

6. 找一个大点的文件,使用 tar 分别把这个文件打包成 .tar.gz 和.tar.bz2 压缩包,比较一下哪个包会更小,从而得出结论,是 gzip 压缩效果好还是 bzip2 压缩效果好?
答: bzip2 压缩会更小一点,bzip2 的压缩效果好。需要注意的是同样文件使用不同的打包压缩工具,打包压缩的越小,打包压缩时所用的时间越长。

7. 使用 tar 打包并压缩的时候,默认压缩级别为几? 想一想如何能够改变压缩级别呢?(提示,tar 本身没有这个功能哦,可以尝试拆分打包和压缩)
答:
使用 tar 打包并压缩的时候,默认压缩级别为 6。

[root@localhost d6z]# ls
4.txt  dl  test
[root@localhost d6z]# bzip2 -9 4.txt
[root@localhost d6z]# ls
4.txt.bz2  dl  test
[root@localhost d6z]# tar -cvf 4.txt.tar.bz2 4.txt.bz2
4.txt.bz2
[root@localhost d6z]# ls
4.txt.bz2  4.txt.tar.bz2  dl  test

## 扩展学习

  1. 在 windows 下常见的压缩包有 rar 和 zip,默认 rar 在 linux 下是不支持压缩和解压的,但是也有相关的工具可以安装在 linux 平台上。而 zip 的压缩包是可以同时存在于 linux 平台和 windows 平台上的哦。
    使用 zip 压缩:
    zip 可以压缩目录也可以压缩文件,压缩目录时,需要指定目录下的文件哦,看例子吧:
zip  1.txt.zip  1.txt
zip  dir1.zip  dir1/*

说明: zip 后面先跟目标文件名,也就是压缩后的自定义压缩包名,然后是要压缩的文件或者目录。
思考题: 在压缩目录时,如果只写目录名,会发生什么?而目录下还有二级目录甚至更多级目录时,能否也一并压缩二级目录下的文件呢?

做完实验后,相信您已经得出结论,看看是否和阿铭的答案一致?答案是,当目录下还有二级目录甚至更多级目录时,zip 并不会把二级目录下的文件压缩,而仅仅是把二级目录本身压缩,那有没有级联的选项呢?当然有,那就是:

zip -r dir1.zip dir1/

这样也不需要用 dir1/* 了,所以记住,使用 zip 压缩目录时,必须要加上 -r 选项。

好了,说完压缩,也该说如何解压了吧,解压的命令并不是 zip 了,而是叫做 unzip ,解压 1.txt.zip 的命令为:

unzip 1.txt.zip

2.bzcat 命令的使用:
对于使用 bzip2 压缩的文本文档,可以使用 bzcat 命令直接查看文档内容。

cp /etc/passwd ./11.txt
bzip2 11.txt
bzcat 11.txt.bz2

3. 计算机下的压缩原理
压缩原理.rar