- 6.5 zip压缩工具
- 6.6 tar打包
- 6.7 打包并压缩
# 6.5 zip压缩工具
- zip压缩工具可以压缩目录
- 压缩目录需要用zip -r
```
[root@aminglinux-01 d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux
[root@aminglinux-01 d6z]# zip -r aming.zip 3.txt aminglinux
adding: 3.txt (deflated 74%)
adding: aminglinux/ (stored 0%)
adding: aminglinux/4.txt (deflated 74%)
[root@aminglinux-01 d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux aming.zip
[root@aminglinux-01 d6z]# du -sh aming.zip
664K aming.zip
```
- zip有个特点,压缩完了之后,原来的文件不删除,不像前面三个个工具(gzip 、bzip2、xz),压缩完后 之前的文件就消失了
- zip解压缩 命令用 unzip 没有命令,用yum命令安装下
```
[root@aminglinux-01 d6z]# unzip
-bash: unzip: 未找到命令
[root@aminglinux-01 d6z]# yum install -y unzip
已加载插件:fastestmirror
已安装:
unzip.x86_64 0:6.0-16.el7
完毕!
[root@aminglinux-01 d6z]# unzip aming.zip
Archive: aming.zip
replace 3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: n
replace aminglinux/4.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: aminglinux/4.txt
[root@aminglinux-01 d6z]#
```
- 因为zip压缩不会删除原来的文件,所以解压缩的时候 就会重复,解压缩的时候就会问是否覆盖原来的文件可以选择 y yes,或者 n no,A就是全部都yes
- unzip解压 也可以指定 到一个目录下去
使用umzip -d 到指定目录
```
[root@aminglinux-01 d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux aming.zip
[root@aminglinux-01 d6z]# mkdir test
[root@aminglinux-01 d6z]# unzip 2.txt.zip -d test/
Archive: 2.txt.zip
inflating: test/2.txt
[root@aminglinux-01 d6z]#
```
- unzip解压 能不能指定文件名字呢?
答案是不会的,即使指定了也会自动先生成一个目录,把解压文件放到这个目录下
```
[root@aminglinux-01 d6z]# mkdir test
[root@aminglinux-01 d6z]# unzip 2.txt.zip -d test/
Archive: 2.txt.zip
inflating: test/2.txt
[root@aminglinux-01 d6z]# unzip 2.txt.zip -d test/aa.txt
Archive: 2.txt.zip
inflating: test/aa.txt/2.txt
[root@aminglinux-01 d6z]#
```
- 解压出来还是2.txt,也就是说压缩之前是什么样的文件名,压缩之后还是什么样的文件名 ,解压之后,不能改.
- zip的压缩包是没办法查看压缩内容的,和之前三个压缩工具那样的 查看文件的 zcat bzcat xzcat cat工具,zip就没有这样的工具
- 唯一可以看得是查看压缩包里面的文件列表看不了文件内容,
命令unzip -l aming.zip
```
[root@aminglinux-01 d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux aming.zip test
[root@aminglinux-01 d6z]# unzip -l aming.zip
Archive: aming.zip
Length Date Time Name
--------- ---------- ----- ----
1282425 08-07-2017 21:46 3.txt
0 08-07-2017 23:17 aminglinux/
1282425 08-07-2017 23:17 aminglinux/4.txt
--------- -------
2564850 3 files
[root@aminglinux-01 d6z]#
```
# 6.6 tar 打包工具
![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170808/215957728.png?imageslim)
1. 带宽100兆 指的是比特 理论速度 12.5M每秒单位是 字节 1字节=8比特
2. 打包可能会减小文件的大小,也不是绝对的
```
[root@aminglinux-01 ~]# cd /tmp
[root@aminglinux-01 tmp]# cd d6z
[root@aminglinux-01 d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux aming.zip test
[root@aminglinux-01 d6z]# tar -cvf aminglinux.tar aminglinux/
aminglinux/
aminglinux/4.txt
[root@aminglinux-01 d6z]# tar -cf aminglinux.tar aminglinux/
不加V 就没有过程 ,如果再打包一次就把之前的打包的覆盖了
[root@aminglinux-01 d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux aminglinux.tar aming.zip test
[root@aminglinux-01 d6z]#
tar解包,解包也会把之前的文件覆盖
[root@aminglinux-01 d6z]# tar -xvf aminglinux.tar
aminglinux/
aminglinux/4.txt
[root@aminglinux-01 d6z]#
tar不仅可以打包目录,也可以目录 文件一起打包
[root@aminglinux-01 d6z]# tar -cvf aminglinux.tar aminglinux 3.txt 4.txt
aminglinux/
aminglinux/4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]#
怎么查看打包里的文件呢?用tar -tf 查看
[root@aminglinux-01 d6z]# tar -tf aminglinux.tar
aminglinux/
aminglinux/4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]#
tar还有一个比较有用的选项,--exclude 可以过滤一个文件,不去打包它
下面来过滤所有的txt文件
[root@aminglinux-01 d6z]# tar -tf aminglinux.tar
aminglinux/
aminglinux/4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]# tar -cvf aminglinux.tar --exclude "*.txt" aminglinux 3.txt 4.txt
aminglinux/
[root@aminglinux-01 d6z]#
给txt的文件过滤了 需要加上“” 双引号
下面过滤掉aminglinux文件
[root@aminglinux-01 d6z]# tar -cvf aminglinux.tar --exclude aminglinux aminglinux 3.txt 4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]#
```
# 6.7 tar打包并压缩
![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170808/222136596.png?imageslim)
```
普通打包
[root@aminglinux-01 d6z]# tar -cvf aminglinux.tar aminglinux 3.txt 4.txt
aminglinux/
aminglinux/4.txt
3.txt
4.txt
```
- [x] tar打包并且把文件用zip压缩文件 使用命令 tar -zcvf
```
[root@aminglinux-01 d6z]# tar -zcvf aminglinux.tar.gz aminglinux 3.txt 4.txt
aminglinux/
aminglinux/4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]# du -sh aminglinux.tar.gz
992K aminglinux.tar.gz
使用gzip 压缩 只有992k了,本来大小加起来3.9M
[root@aminglinux-01 d6z]# du -sh aminglinux 3.txt 4.txt
1.3M aminglinux
1.3M 3.txt
1.3M 4.txt
```
- [x] tar打包并且把文件用bzip2压缩 使用命令tar -jcvf
```
[root@aminglinux-01 d6z]# tar -jcvf aminglinux.tar.bz2 aminglinux 3.txt 4.txt
aminglinux/
aminglinux/4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]# du -sh aminglinux.tar.bz2
392K aminglinux.tar.bz2
```
bzip2 压缩又狠了一些
- [x] tar打包并且把文件用xz压缩 使用命令 tar -Jcvf
```
[root@aminglinux-01 d6z]# tar -Jcvf aminglinux.tar.xz aminglinux 3.txt 4.txt
aminglinux/
aminglinux/4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]# du -sh aminglinux.tar.xz
60K aminglinux.tar.xz
最恨xz压缩成了60k
[root@aminglinux-01 d6z]#
```
- [x] 使用tar -tf 查看打包压缩包文件,甚至tar包 不压缩也是这样看
```
[root@aminglinux-01 d6z]# tar -tf aminglinux.tar.gz
aminglinux/
aminglinux/4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]# tar -tf aminglinux.tar.bz2
aminglinux/
aminglinux/4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]# tar -tf aminglinux.tar.xz
aminglinux/
aminglinux/4.txt
3.txt
4.txt
[root@aminglinux-01 d6z]#
```
- [x] 打包并且解压 命令把上面 打包tar -cvf 改成 tar -xvf 解压
打包并且解压zip文件 tar -zxvf aminglinux.gz
打包并且解压bz2文件 tar -jxvf aminglinux.bz2
打包并且解压xz文件 tar -Jxvf aminglinux.xz
## 扩展
查看网址 http://ask.apelearn.com/question/5435