1. 程式人生 > >2018-1-6 4周5次課 zip壓縮、tar打包

2018-1-6 4周5次課 zip壓縮、tar打包

lac add 位置 內容 需要 rec 大文件 all exc

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



2018-1-6 4周5次課 zip壓縮、tar打包