首页 > 代码库 > 第11章 linux文档的压缩与打包

第11章 linux文档的压缩与打包

1. gzip, bzip2 能否直接压缩目录呢?
  不能
2. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令。
  压缩 gzip 1.txt ;  解压gzip -d 1.txt.gz

       bzip 1.txt ; 解压bzip -d 1.txt.bz2
3. tar 在打包的时候,如果想排除多个文件或者目录如何操作?
   tar -cvf file.tar --exclude.a.txt --exclude b.txt 123/
4. 请实验,如果不加 "-" 是否正确, 如 tar zcvf  1.tar.gz  1.txt 2.txt ?
        正确
5. 如何使用tar打包和解包 .tar.gz, .tar.bz2 的压缩包?
   tar -zcvf 1.tar.gz  11 22

   tar -zxvf 1.tar.gz

   tar -jcvf 1.tar.bz2  11  22

   tar -jxvf 1.tar.bz2
6. 找一个大点的文件,使用tar 分别把这个文件打成 .tar.gz和.tar.bz2 压缩包,比较一下哪个包会更小,从而得出结论,是gzip压缩效果好还是bzip2压缩效果好?
 理论上.tar.bz2的压缩包小一些,但个别时候,有相反的情况。但大多时候bzip2压缩效果好。

7. 使用tar打包并压缩的时候,默认压缩级别为几? 想一想如何能够改变压缩级别呢?(提示,tar本身没有这个功能哦,可以尝试拆分打包和压缩)
    tar打包压缩时,是按照gzip和bzip2的默认压缩级别来的,gzip工具默认压缩级别为6,bzip2默认压缩级别为9.
改变默认压缩级别可以这样来做,首先tar打包,然后再使用gzip或者bzip2压缩工具来压缩,压缩的时候指定压缩级别。如:  tar cvf 1.tar 123/;  gzip -2 1.tar

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


  1. zip  1.txt.zip  1.txt

  2. zip  dir1.zip  dir1/*


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

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

  1. zip -r dir1.zip dir1/

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

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

  1. unzip 1.txt.zip

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


  1. cp /etc/passwd ./11.txt

  2. bzip2 11.txt

  3. bzcat 11.txt.bz2


3. 计算机下的压缩原理   

  • 压缩原理.rar



实际应用:

利用tar 通过网络拷贝数据 http://www.lishiming.net/thread-152-1-2.html
Tar打包、压缩与解压缩到指定目录的方法 http://www.lishiming.net/thread-96-1-3.html
linux下不支持解压大于4G的zip压缩包 http://www.lishiming.net/thread-1813-1-1.html


第11章 linux文档的压缩与打包