6.5 zip压缩工具


★zip支持压缩目录


前期准备:

[root@localhost d6z]# tree aminglinux/
aminglinux/
├── 2
│   └── 2.txt
└── aming2
├── 2
│   └── 2.txt
├── aming1
│   ├── 2
│   │   └── 2.txt
│   └── aminglinux
│       └── 2
│           └── 2.txt
└── ls2
8 directories, 4 files
[root@localhost d6z]# cp 4.txt aminglinux/2/
[root@localhost d6z]# du -sh aminglinux/
1.7Maminglinux/


·压缩文件命令:zip 压缩文件名 文件名    (压缩后源文件不删除)

[root@localhost d6z]# zip 2.txt.zip 2.txt
adding: 2.txt (deflated 74%)
[root@localhost d6z]# du -sh 2.txt.zip
436K2.txt.zip


·压缩目录命令:zip -r 压缩文件名 目录

[root@localhost d6z]# zip -r aming.zip 3.txt aminglinux
adding: 3.txt (deflated 74%)
adding: aminglinux/ (stored 0%)
adding: aminglinux/2/ (stored 0%)
adding: aminglinux/2/2.txt (stored 0%)
adding: aminglinux/2/4.txt (deflated 74%)
adding: aminglinux/aming2/ (stored 0%)
adding: aminglinux/aming2/2/ (stored 0%)
adding: aminglinux/aming2/2/2.txt (stored 0%)
adding: aminglinux/aming2/aming1/ (stored 0%)
adding: aminglinux/aming2/aming1/2/ (stored 0%)
adding: aminglinux/aming2/aming1/2/2.txt (stored 0%)
adding: aminglinux/aming2/aming1/aminglinux/ (stored 0%)
adding: aminglinux/aming2/aming1/aminglinux/2/ (stored 0%)
adding: aminglinux/aming2/aming1/aminglinux/2/2.txt (stored 0%)
adding: aminglinux/aming2/ls2/ (stored 0%)
[root@localhost d6z]# ls
1.txt  2.txt  2.txt.zip  3.txt  4.txt  aminglinux  aming.zip
[root@localhost d6z]# du -sh aming.zip
868Kaming.zip


·解压缩命令:unzip 压缩文件名

[root@localhost d6z]# unzip aming.zip
Archive:  aming.zip
replace 3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: n      ##压缩时没删除源文件,解压缩时提示选项
replace aminglinux/2/2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
extracting: aminglinux/2/2.txt
replace aminglinux/2/4.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
inflating: aminglinux/2/4.txt
extracting: aminglinux/aming2/2/2.txt
extracting: aminglinux/aming2/aming1/2/2.txt
extracting: aminglinux/aming2/aming1/aminglinux/2/2.txt


·解压到指定目录:unzip 压缩文件名 -d 指定目录        ##压缩后文件名无法更改

[root@localhost d6z]# unzip 2.txt.zip -d text/               ##注意 -d 的位置,不可放在压缩文件名前
Archive:  2.txt.zip
inflating: text/2.txt
[root@localhost d6z]# du -sh text/2.txt
1.7Mtext/2.txt


·查看压缩包文件列表:unzip -l 压缩包名 (zip压缩包无法查看内容,只可以查看列表)

[root@localhost d6z]# unzip -l aming.zip
Archive:  aming.zip
Length      Date    Time    Name
---------  ---------- -----   ----
1700160  01-04-2018 21:35   3.txt
0  01-04-2018 22:20   aminglinux/
0  01-04-2018 22:21   aminglinux/2/
0  01-04-2018 22:20   aminglinux/2/2.txt
1700160  01-04-2018 22:21   aminglinux/2/4.txt
0  01-04-2018 22:20   aminglinux/aming2/
0  01-04-2018 22:20   aminglinux/aming2/2/
0  01-04-2018 22:20   aminglinux/aming2/2/2.txt
0  01-04-2018 22:20   aminglinux/aming2/aming1/
0  01-04-2018 22:20   aminglinux/aming2/aming1/2/
0  01-04-2018 22:20   aminglinux/aming2/aming1/2/2.txt
0  01-04-2018 22:20   aminglinux/aming2/aming1/aminglinux/
0  01-04-2018 22:20   aminglinux/aming2/aming1/aminglinux/2/
0  01-04-2018 22:20   aminglinux/aming2/aming1/aminglinux/2/2.txt
0  01-04-2018 22:20   aminglinux/aming2/ls2/
---------                     -------
3400320                     15 files

6.6 tar打包


服务器之间传输多个文件和目录,把所有文件和目录打包成一个大文件

·打包命令:tar -cvf 包名称 文件/目录    (可分别打包文件和目录,也可以同时打包二者)

[root@localhost d6z]# tar -cvf aminglinux.tar aminglinux/     ## c创建 v可视化 f 包名 f后接包名
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/

(如果再次打包成同样名称的包,那么会直接覆盖原包,不提示)


·解包命令:tar -xvf 包名

[root@localhost d6z]# tar -xvf aminglinux.tar                 ##解包也会直接覆盖,不提示
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/


·查看包列表:tar -tf 包名称 ## List all files

[root@localhost d6z]# tar -tf aminglinux.tar
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/


·打包时过滤掉某些不需要的文件或目录:

tar -cvf 包名 --exclude 文件/目录 其余不过滤的文件/目录   (可以多次使用 --exclude)

[root@localhost d6z]# tar -cvf aminglinux.tar --exclude aming1 aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt
[root@localhost d6z]# tar -cvf aminglinux.tar --exclude 2.txt --exclude aming1 aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/ls2/
3.txt
4.txt

(过滤多个文件或目录需要多次使用 --exclude )


6.7 打包并压缩


tar打包时支持同时压缩


·tar打包时压缩(支持的是gzip):tar -zcvf      解包解压缩为 tar -zxvf

[root@localhost d6z]# tar -zcvf aminglinux.tar.gz aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt
[root@localhost d6z]# du -sh aminglinux 3.txt 4.txt
1.7Maminglinux
1.7M3.txt
1.7M4.txt
[root@localhost d6z]# du -sh aminglinux.tar.gz
1.3Maminglinux.tar.gz
[root@localhost d6z]# tar -zxvf aminglinux.tar.gz
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt


·tar打包时压缩(支持的时bzip2):tar -jcvf       解包解压缩为 tar -jxvf

[root@localhost d6z]# tar -jcvf aminglinux.tar.bz2 aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt
[root@localhost d6z]# du -sh aminglinux 3.txt 4.txt
1.7Maminglinux
1.7M3.txt
1.7M4.txt
[root@localhost d6z]# du -sh aminglinux.tar.bz2
476Kaminglinux.tar.bz2
[root@localhost d6z]# tar -jxvf aminglinux.tar.bz2
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt


·tar打包时压缩(支持的时xz):tar -Jcvf        解包解压缩为 tar -Jxvf

[root@localhost d6z]# tar -Jcvf aminglinux.tar.xz aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt
[root@localhost d6z]# du -sh aminglinux 3.txt 4.txt
1.7Maminglinux
1.7M3.txt
1.7M4.txt
[root@localhost d6z]# du -sh aminglinux.tar.xz
60Kaminglinux.tar.xz
[root@localhost d6z]# tar -Jxvf aminglinux.tar.xz
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt


·查看文件列表:tar -tf aminglinux.tar.gz / .bz2 / .xz   (三种格式都可以)

[root@localhost d6z]# tar -tf aminglinux.tar.gz
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt
[root@localhost d6z]# tar -tf aminglinux.tar.bz2
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt
[root@localhost d6z]# tar -tf aminglinux.tar.xz
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/2/4.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
aminglinux/aming2/aming1/aminglinux/
aminglinux/aming2/aming1/aminglinux/2/
aminglinux/aming2/aming1/aminglinux/2/2.txt
aminglinux/aming2/ls2/
3.txt
4.txt