四周第五次課

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打包成gzip,解包

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打包成bz2

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打包成xz

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

相關文章
相關標籤/搜索