1. 程式人生 > >linux tar進行歸檔壓縮和解壓

linux tar進行歸檔壓縮和解壓

一、壓縮/解壓縮工具

壓縮比:壓縮前後文件體積大小比例

壓縮演算法:通過分析資料儲存模式實現CPU資源佔用率換取磁碟空間

    1.gzip/gunzip/zcat- compress or expand files壓縮或者展開檔案

gzip  [OPTION]...  FILE…預設會刪除原檔案

-d:解壓縮,相當於gunzip;

-#:指定壓縮比,預設是6;數字越大壓縮比越大(1-9);

-c:將壓縮結果輸出至標準輸出;gzip  -c  FILE > /PATH/TO/SOMEFILE.gz

    2.bzip2/bunzip2/bzcat

bzip2  [OPTION]...  FILE…

預設會刪除原檔案

-d:解壓縮

-#:指定壓縮比;預設是6;數字越大壓縮比越大(1-9);

-k:keep,保留原檔案;

    3.xz/unxz/xzcatlzma/unlzma/lzcat

xz [OPTION]... FILE…預設會刪除原檔案

-d:解壓縮

-#:指定壓縮比;預設是6;數字越大壓縮比越大(1-9);

-k:保留原檔案;

    4.三種壓縮工具比較總結

wKioL1Z3_FOS9fCRAAHuuhaxaFc771.jpg

(1)在較小檔案,特別是文字檔案的處理上gzip演算法壓縮後效果最好

(2)對也大檔案,實際上zx的演算法壓縮比最優,遠超gzipbzip2gzip好點

(3)bzi2gzip壓縮比優一點,但時不明顯

(4)gzipbzip2xz都只支援壓縮檔案不支援目錄

(5)zcatbzcatxzcat都能直接檢視壓縮檔案的內容,而不用去單獨解壓

實際上zcatbzcatxzcat將其加壓在臨時檔案內以供檢視,所以對大檔案不建議用此類命令,過於佔用CPU資源

二、歸檔

歸檔:把多個檔案打包成一個檔案,歸檔本身會使得檔案變大,所以歸檔之後一般壓縮

    1.tar

tar  [OPTION]...  FILE…

-f  /PATH/TO/SOMEFILE.tarfile,定義歸檔檔名和型別

歸檔多個檔案或者目錄,且不刪除原檔案,不指明路徑預設當前路徑,選項可以不加-

      (1)

建立歸檔

-c -f /PATH/TO/SOMEFILE.tar  FILE...

-cf /PATH/TO/SOMEFILE.tar  FILE...

      (2)展開歸檔(tar預設可以根據檔案字尾判斷出壓縮型別)

-xf  /PATH/FROM/SOMEFILE.tar

-xf  /PATH/FROM/SOMEFILE.tar  -C  /PATH/TO/SOMEDIR展開至何處

      (3)檢視歸檔檔案的檔案列表

-tf  /PATH/TO/SOMEFILE.tar

      (4)歸檔壓縮/解壓縮

-z:gzip2演算法型別,-zcf      -zxf

-j:bzip2演算法型別,-jcf     -jxf

-J: xz演算法型別,-Jcf    -Jxf

tar資料的備份和還原
tar 
-v   :顯示詳細資訊
-f   :指定歸檔檔名稱(所有的操作均包含此引數,必須放在最後)
-c   :建立歸檔                -x :釋放歸檔
-z   :gzip檔案                 -j :bzip2                             -J :xz
-P   :保留完整的檔案路徑
-t   :檢視壓縮檔案的內容
-C   :指定解壓後文件的目錄

備份:先做歸檔再做壓縮
tar -cvf    *.tar             +要打包的檔案                     只進行打包處理
tar -zcvf   *.tar.gz          +要打包的檔案  打包壓縮為gz字尾      gzip
tar -jcvf   *.tar.bz2          +要打包的檔案  打包壓縮為bz2字尾     bzip2
tar -Jcvf   *.tar.xz          +要打包的檔案  打包壓縮為xz字尾      xz
解壓:
tar -xvf    *.tar         -C     +要解壓的目錄                      會自動根據檔案的字尾進行解壓
tar -zxvf   *.tar.gz      -C    +要解壓的目錄     解壓字尾gz的檔案    gzip
tar -jxvf   *.tar.bz2     -C    +要解壓的目錄     解壓字尾bz2的檔案     bzip2
tar -Jxvf   *.tar.xz      -C    +要解壓的目錄     解壓字尾xz的檔案      xz 

 2.zip/unzip既能壓縮解壓又能歸檔,字尾.zip

壓縮  zip  newname.zip  file

解壓:unzip


歸納總結:

     1.檔案的字尾對Linux系統無實際意義,但時在壓縮解壓有實際意義,要注意檔案的副檔名

     2.gzipbzip2xz都只支援壓縮檔案不支援目錄

     3.tar本身只能對檔案歸檔但不能壓縮解壓操作,通過呼叫gzipbzip2xz實現歸檔壓縮

     4.tar純粹做歸檔操作,得到的檔案大小會比其歸檔的每個檔案大小和還要大

     5.tar展開壓縮的歸檔檔案是無需指明索要解壓擴充套件的檔案的壓縮演算法,因為其可以自動識別