首页 > 代码库 > 第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可以压缩目录也可以压缩文件,压缩目录时,需要指定目录下的文件哦,看例子吧:
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
实际应用:
利用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文档的压缩与打包