- 压缩打包介绍
- gzip压缩工具
- bzip2压缩工具
- xz压缩工具
- zip压缩工具
- tar打包工具
- 打包并压缩
- 利用tar通过网络拷贝数据
- tar打包,压缩与解压缩到指定目录
- Linux下不支持解压大于4G的zip压缩包
- 扩展学习
一.压缩打包介绍
- 压缩可以节省空间大小,方便传输,节省带宽
- 常见压缩文件
二.gzip压缩工具
- 实验一,gzip打包一个文件
- 创建一个目录
- 进入该目录下
- 添加内容到一个新的文件里
- 多次执行上一步命令,制作一个大的文件
- 查看文件大小
- 压缩1.txt文件
- 查看文件大小,发现变小了很多
- 解压缩1.txt文件,会把原先空的空间挤压掉,所以下面#du -sh 1.txt 会使1.3M
- 可以指定压缩级别#gzip -1~9级别,默认为6级别
- #file 用来查看压缩文件的信息
- #zcat 用来查看压缩文件的内容,其实就是先解压再查看它的内容
示例二:保留当前文件并压缩或者解压缩到指定目录下
- 指定压缩在哪个目录下
- 指定解压在哪个目录下
- #gzip不能压缩目录
三.bzip2压缩工具
- 相对于gzip,压缩的更小,算法也不一样,不过需要耗费CPU资源也更多
- yum install -y bzip2 安装bizp2工具
- 参照下图,使用方法跟gzip基本一致
- 不过它默认的级别是9级别
- bzcat查看bzip文件内容
四.xz压缩工具
- 比上面两个压缩工具压缩的更小,其他操作方法跟上面一样
- #unxz 也可以解压缩xz文件
五.zip压缩工具
- 支持压缩目录,不过这个压缩工具压缩是最宽松的
- yum install -y zip 安装zip工具
- #zip -r 压缩目录需要加-r ,可以选择目录和文件一起压缩
- zip压缩文件是不能直接查看文件内容
- #unzip -l 查看zip压缩文件的目录列表
六.tar打包工具
- 可以将目录和文件打包成一个文件,方便传输
- #tar -cvf 命令,打包文件和目录
- c创建
- v可视化
- f 打包文件名
- #tar -xvf 解包
- #tar -tf 查看打包文件目录
- --exclude 过滤指定的文件,不去打包过滤的文件
七.打包并压缩
- #tar -zcvf zip打包并压缩
- #tar -jcvf bzip2打包并压缩
- #tar -Jcvf xz打包并压缩
- #tar -tf 查看压缩文件目录列表
八.利用tar通过网络拷贝数据
# cd /data // data目录下有我们要拷贝的目标文件目录 test
# tar cvf - test| ssh 10.0.1.11 "cd /copy1/; tar xvf -" //首先将要拷贝的目录test打包,"-" 代表标准输出,然后再ssh 到目标主机 10.0.1.11 ,运行相应的命令。其中tar xvf - 意思是,将前面的标准输出内容作为解包的对象。
- 总结:其实就是想拷贝的目录先打包,然后将打包好的文件拷贝到目标主机,最后在目标主机上解包。只不过,我们用一条命令实现了边打包边解包的过程。
九.Tar打包、压缩与解压缩到指定目录
- tar在linux上是常用的打包、压缩、加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数
参数:
-c :create 建立压缩档案的参数;
-x : 解压缩压缩档案的参数;
-z : 是否需要用gzip压缩;
-v: 压缩的过程中显示档案;
-f: 置顶文档名,在f后面立即接文件名,不能再加参数
- 举例: 一,将整个/home/www/images 目录下的文件全部打包为 /home/www/images.tar
[root@xoaocom ~]# tar -cvf /home/www/images.tar /home/www/images ← 仅打包,不压缩
[root@xoaocom ~]# tar -zcvf /home/www/images.tar.gz /home/www/images ← 打包后,以gzip压缩
在参数f后面的压缩文件名是自己取的,习惯上用tar来做,如果加z参数,则以tar.gz 或tgz来代表gzip压缩过的tar file文件
- 举例: 二,将 /home/www/images.tar.gz 解压到/home/www下面
[root@xoaocom ~]# cd /home/www
[root@xoaocom ~]# tar -zxvf /home/images.tar.gz
解压到指定的目录
[root@xoaocom ~]# tar -zxvf /home/images.tar.gz -C /specific dir
十.linux下不支持解压大于4G的zip压缩包
以前没有注意过,linux竟然不支持大于4G的zip文件的解压。解决办法如下:
wget -c http://packages.sw.be/p7zip/p7zip-9.13-1.el5.rf.i386.rpm
wget -c http://packages.sw.be/p7zip/p7zip-plugins-9.13-1.el5.rf.i386.rpm
下载完后安装:
rpm -ivh p7zip-9.13-1.el5.rf.i386.rpm
rpm -ivh p7zip-plugins-9.13-1.el5.rf.i386.rpm
- 解压命令
7z x 123.zip
十一.扩展学习
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.计算机下的压缩原理
- zip的压缩原理与实现
http://ask.apelearn.com/question/5435
- 无损数据压缩