6.5 zip壓縮工具linux
6.6 tar打包windows
6.7 打包並壓縮數組
6.5 zip壓縮工具工具
zip壓縮包在windows和linux中都比較經常使用,它能夠壓縮目錄和文件,壓縮目錄時,須要指定目錄下的文件。spa
[root@localhost d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt.net
[root@localhost d6z]# mkdir /tmp/aminglinux
[root@localhost d6z]# mkdir /tmp/aminglinux/2
[root@localhost d6z]# cp 4.txt !$
cp 4.txt /tmp/aminglinux/2
[root@localhost d6z]# cp -r /tmp/aminglinux .
[root@localhost d6z]# tree aminglinux
aminglinux
└── 2
└── 4.txtip
1 directory, 1 file
[root@localhost d6z]# du -sh aminglinux/
4.2M aminglinux/get
[root@localhost d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt aminglinuxtest
zip後面先跟目標文件名,即壓縮後的自定義壓縮包名,而後跟要壓縮的文件或者目錄。如果你的CentOS沒有該命令,使用命令yum install -y zip安裝便可。
[root@localhost d6z]# zip 2.txt.zip 2.txt
adding: 2.txt (deflated 73%)
[root@localhost d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux
[root@localhost d6z]# du -sh 2.txt.zip
1.2M 2.txt.zip可視化
[root@localhost d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux
zip壓縮目錄須要加-r選項。
[root@localhost d6z]# zip aming.zip 3.txt aminglinux
adding: 3.txt (deflated 73%)
adding: aminglinux/ (stored 0%)
[root@localhost d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux aming.zip
[root@localhost d6z]#
zip壓縮文件有個特色,壓縮完了之後,原來的文件不刪除。不像gzip、bzip二、xz,它們三個壓縮完了原來的文件就消失了。
[root@localhost d6z]# du -sh aming.zip
1.2M aming.zip
[root@localhost d6z]#
zip解壓縮文件,使用命令unzip 壓縮文件名,由於原來的文件沒有消失,因此解壓時會詢問一下。
[root@localhost d6z]# unzip aming.zip
Archive: aming.zip
replace 3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: 3.txt
[root@localhost d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux aming.zip
[root@localhost d6z]# mkdir test
-d選項能夠指定解壓的文件放到什麼路徑。
[root@localhost d6z]# unzip 2.txt.zip -d test/
Archive: 2.txt.zip
inflating: test/2.txt
zip壓縮以前是什麼文件名,壓縮以後就是什麼文件名,不能改動。強行改動的話,它會先生成一個目錄,再把原來的被壓縮的文件放進這個目錄中。
[root@localhost d6z]# unzip 2.txt.zip -d test/aa.txt
Archive: 2.txt.zip
inflating: test/aa.txt/2.txt
[root@localhost d6z]#
zip壓縮文件是沒法查看的,最多能看壓縮文件的文件列表(壓縮文件裏都有哪些文件)。
[root@localhost d6z]# ls
1.txt.bz2 2.txt 2.txt.zip 3.txt 4.txt aminglinux aming.zip test
[root@localhost d6z]# unzip -l aming.zip
Archive: aming.zip
Length Date Time Name
--------- ---------- ----- ----
4399320 01-03-2018 22:48 3.txt
0 01-05-2018 07:12 aminglinux/
--------- -------
4399320 2 files
[root@localhost d6z]#
6.6 tar打包
tar是一個打包工具,能夠把目錄打包成一個文件,它把全部文件整合成一個大文件,方便複製或者移動。該命令格式以下:
tar [-zjxcvfpP] filename tar,它的選項解釋以下:
-z:表示同時用gzip壓縮
-j:表示同時用bzip2壓縮
-J:表示同時用xz壓縮
-x:表示解包或者解壓縮
-t:表示查看tar包裏的文件
-c:表示創建一個tar包或者壓縮文件包
-v:表示可視化
-f:後面跟文件名,-f filename,表示壓縮後的文件名filename,或者解壓文件filename。須要注意的是,若是是多個參數組合的狀況下,-f參數寫到最後面。
-p:表示使用原文件的屬性,壓縮前什麼屬性壓縮後還什麼屬性。(不經常使用)
-P:表示可使用絕對路徑(不經常使用)。
--exclude filename:表示在打包或壓縮時,不要將filename文件包括在內。(不經常使用)
• tar -cvf 123.tar 123
• tar -cvf aming.tar 1.txt 123
• tar -xvf aming.tar
• tar -tf aming.tar
• tar -cvf aming.tar --exclude 1.txt --exclude 2 123
打包對文件大小來說,沒有太大的變化,也可能有變化。例如說有10000個小於4K的文件,不打包的話就須要10000*4K的空間,若是打包的話,小文件就會填滿空間,打包後的文件大小會減少不少。若是文件比較大的話,打包以後文件大小變化就不明顯了。
[root@localhost d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt aminglinux
[root@localhost d6z]# cp 2.txt aminglinux/2/
[root@localhost d6z]# mkdir aminglinux/aming2
[root@localhost d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt aminglinux
[root@localhost d6z]# cp -r aminglinux/2 aminglinux/aming2/
[root@localhost d6z]# cd aminglinux/aming2
[root@localhost aming2]# ls
2
[root@localhost aming2]# mkdir aming1
[root@localhost aming2]# cd /tmp/d6z/aminglinux
[root@localhost aminglinux]# ls
2 aming2
[root@localhost aminglinux]# cp -r 2 aming2/aming1/
[root@localhost aminglinux]# cd ..
[root@localhost d6z]# tree aminglinux
aminglinux
├── 2
│ └── 2.txt
└── aming2
├── 2
│ └── 2.txt
└── aming1
└── 2
└── 2.txt
5 directories, 3 files
[root@localhost d6z]# tar -cvf aminglinux.tar aminglinux
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
[root@localhost d6z]#
打包以後,能夠再次打包,不加-v選項的話,打包以後的包會覆蓋以前的包,不作任何提醒。
[root@localhost d6z]# tar -cf aminglinux.tar aminglinux
[root@localhost d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt aminglinux aminglinux.tar
-xvf選項能夠解壓包,解壓出的文件會替換以前的文件,不像unzip同樣解壓時還會提示。
[root@localhost d6z]# tar -xvf aminglinux.tar
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
[root@localhost d6z]#
tar不只能夠打包目錄,也能夠打包文件,也能夠目錄和文件一塊兒打包。
[root@localhost d6z]# tar -cvf aminglinux.tar aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
使用-tf選項能夠查看打包文件的文件列表。
[root@localhost d6z]# tar -tf aminglinux.tar
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]#
--exclude選項用於排除文件或者目錄。
[root@localhost d6z]# tar -cvf aminglinux.tar --exclude aming1 aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
3.txt
4.txt
[root@localhost d6z]# tar -cvf aminglinux.tar --exclude aming1 --exclude 2.txt aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/aming2/
aminglinux/aming2/2/
3.txt
4.txt
[root@localhost d6z]#
[root@localhost d6z]# tar -cvf aminglinux.tar --exclude aming1 --exclude "*.txt" aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/aming2/
aminglinux/aming2/2/
[root@localhost d6z]#
6.7 打包並壓縮
tar壓縮並打包時,gzip壓縮用z,bzip2壓縮用j,xz壓縮用J,打包用c,解壓縮或者解包用x便可。
• tar -zcvf 123.tar.gz 123
• tar -zxvf 123.tar.gz
• tar -jcvf 123.bz2 123
• tar -jxvf 123.bz2
• tar -Jcvf 123.xz 123
• tar -Jxvf 123.xz
• tar -tf 123.bz2 / tar -tf 123.gz / tar -tf 123.xz、
tar -z支持gzip壓縮。
[root@localhost d6z]# tar -zcvf aminglinux.tar.gz aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# du -sh aminglinux.tar.gz
5.8M aminglinux.tar.gz
[root@localhost d6z]# du -sh aminglinux 3.txt 4.txt
13M aminglinux
4.2M 3.txt
4.2M 4.txt
[root@localhost d6z]# tar -zxvf aminglinux.tar.gz
aminglinux/
aminglinux/2/
aminglinux/2/4.txt
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/4.txt
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/4.txt
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]#
tar -j支持bzip2壓縮。
[root@localhost d6z]# tar -jcvf aminglinux.tar.bz2 aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# du -sh aminglinux.tar.bz2
5.1M aminglinux.tar.bz2
[root@localhost d6z]# tar -jxvf aminglinux.tar.bz2
aminglinux/
aminglinux/2/
aminglinux/2/4.txt
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/4.txt
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/4.txt
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
tar -J支持xz壓縮,壓縮的越狠,須要的時間越久。
[root@localhost d6z]# tar -Jcvf aminglinux.tar.xz aminglinux 3.txt 4.txt
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# du -sh aminglinux.tar.xz
204K aminglinux.tar.xz
[root@localhost d6z]# tar -Jxvf aminglinux.tar.xz
aminglinux/
aminglinux/2/
aminglinux/2/4.txt
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/4.txt
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/4.txt
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]#
使用-tf選項查看壓縮打包文件的文件列表。
[root@localhost d6z]# tar -tf aminglinux.tar.gz
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# tar -tf aminglinux.tar.bz2
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]# tar -tf aminglinux.tar.xz
aminglinux/
aminglinux/2/
aminglinux/2/2.txt
aminglinux/aming2/
aminglinux/aming2/2/
aminglinux/aming2/2/2.txt
aminglinux/aming2/aming1/
aminglinux/aming2/aming1/2/
aminglinux/aming2/aming1/2/2.txt
3.txt
4.txt
[root@localhost d6z]#
友情連接:阿銘Linux