1. 程式人生 > >8.2壓縮、解壓縮及歸檔工具

8.2壓縮、解壓縮及歸檔工具

文件內容 back 增加 利用 nco log 這就是 合成 .com

compress/uncompress

file-roller 在圖形界面上使用

-d: 解壓縮,相當於uncompress
-c: 結果輸出至標準輸出,不刪除原文件
-v: 顯示詳情

compress : compress 後面跟文件
後綴帶 .Z
compress 壓縮完文件並且刪除文件
技術分享圖片
compress -d m.Z -d解壓縮 -d=uncompress

技術分享圖片

-c(選項-c 結果輸出至標準輸出,顯示到屏幕上但不刪除源文件)可以用重定向
compress -c m >m.Z 壓縮文件 並重定向到m.Z中
技術分享圖片
zcat 解壓縮顯示在屏幕上,不想顯示就放到文件中,但是保留原有的壓縮文件

zcat m.Z > m.m zcat 把 m.Z解壓縮到m.m文件中
技術分享圖片

gzip/gunzip

常用選項:
-d: 解壓縮,相當於gunzip -c: 將壓縮或解壓縮的結果輸出至標準輸出
-#: 1-9,指定壓縮比,值越大壓縮比越大

特性:壓縮完成後,不保留原始文件。壓縮率大於compress。
範例:
gzip m 壓縮
gzip -d m 解壓
gzip -9 m 指定壓縮比

相同的文件用gzip 壓縮比compress 壓縮效果好
gzip -d 與 gunzip 都是解壓縮

gunzip m.gz
技術分享圖片

gzip -c 將壓縮或解壓縮的結果輸出至標準輸出 顯示到屏幕上,也可以用重定向

gzip -c m > m.gz 把m文件壓縮並重定向到m.gz文件中

技術分享圖片
zcat 同樣適用於 .gz 後綴的壓縮文件
技術分享圖片

bzip2/bunzip2/bzcat

bzip2 壓縮完的以 .bz2 結尾
bzip2 -b 壓縮並保留原文件
技術分享圖片

bzip2 比 gzip 和 compress 壓縮效果更好,-#: 1-9,壓縮比,默認為9。

bzip2 -d === bunzip2

bzcat 和上面 zcat效果一樣 也可以重定向到文件中
技術分享圖片

xz/unxz/xzcat

常用選項:
-k: keep, 保留原文件 -d:解壓縮 -#: 1-9,壓縮比,默認為6
xzcat: 不顯式解壓縮的前提下查看文本文件內容

特性:使用-k選項,壓縮完成後可以保留原文件。壓縮率:xz>bzip2>gzip>compress

zip/unzip

打包壓縮
zip –r /testdir/sysconfig /etc/sysconfig/

特性:可以針對文件夾進行壓縮打包 。壓縮率不是很高。
解包解壓縮
nzip sysconfig.zip
cat /var/log/messages | zip messages -
unzip -p message > message

tar

tar可以為文件和目錄創建檔案。利用tar,用戶可以為某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。用戶可以在任何設備上創建檔案,如軟盤。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於備份文 件或將幾個文件組合成為一個文件以便於網絡傳輸是非常有用的。Linux上的tar是GNU版本的。

語法:tar [主選項+輔選項] 文件或者目錄

使用該命令時,主選項是必須要有的,它告訴tar要做什麽事情,輔選項是輔助使用的,可以選用。
主選項:
c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。
r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經作好備份文件,又發現還有一個目錄或是一些文件忘記備份了,這時可以使用該選項,將忘記的目錄或文件追加到備份文件中。
t 列出檔案文件的內容,查看已經備份了哪些文件。
u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最後。
x 從檔案文件中釋放文件。

輔助選項:

b 該選項是為磁帶機設定的。其後跟一數字,用來說明區塊的大小,系統預設值為20(20*512 bytes)。
f 使用檔案文件或設備,這個選項通常是必選的。
k 保存已經存在的文件。例如我們把某個文件還原,在還原的過程中,遇到相同的文件,不會進行覆蓋。
m 在還原文件時,把所有文件的修改時間設定為現在。
M 創建多卷的檔案文件,以便在幾個磁盤中存放。
v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。
w 每一步都要求確認。
z 用gzip來壓縮/解壓縮文件,加上該選項後可以將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。

在具體總結各類壓縮文件之前,首先要 弄清兩個概念:打包和壓縮。打包是指將一大堆文件或目錄什麽的變成一個總的文件,壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。為什麽要區分這 兩個概念呢?其實這源於Linux中的很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你就得先借助另外的工具將這一大堆文件先打 成一個包,然後再就原來的壓縮程序進行壓縮。

tar命令的選項有很多(用man tar可以查看到),但常用的就那麽幾個選項,下面來舉例說明一下:
  tar -cf all.tar .jpg
  這條命令是將所有.jpg的文件打成一個名為all.tar的包。-c是表示產生新的包,-f指定包的文件名。
   tar -rf all.tar
.gif
  這條命令是將所有.gif的文件增加到all.tar的包裏面去。-r是表示增加文件的意思。
??????? tar -uf all.tar logo.gif
  這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

  tar -tf all.tar
  這條命令是列出all.tar包中所有文件,-t是列出文件的意思
   tar -xf all.tar
  這條命令是解出all.tar包中所有文件,-x是解包的意思
  以上就是tar的最基本的用法。為了方便用戶在打包解包的同時可以壓縮或解壓文件,tar提供了一種特殊的功能。這就是tar可以在打包或解包的同時調用其它的壓縮程序,比如調用gzip、bzip2等。

  1) tar調用gzip

  gzip是GNU組織開發的一個壓縮程序,.gz結尾的文件就是gzip壓縮的結果。與gzip相對的解壓程序是gunzip。tar中使用-z這個參數來調用gzip。下面來舉例說明一下:

    tar -czf all.tar.gz *.jpg

  這條命令是將所有.jpg的文件打成一個tar包,並且將其用gzip壓縮,生成一個gzip壓縮過的包,包名為all.tar.gz
   tar -xzf all.tar.gz
  這條命令是將上面產生的包解開。

  2) tar調用bzip2

  bzip2是一個壓縮能力更強的壓縮程序,.bz2結尾的文件就是bzip2壓縮的結果。與bzip2相對的解壓程序是bunzip2。tar中使用-j這個參數來調用bzip2。下面來舉例說明一下:
   tar -cjf all.tar.bz2 *.jpg
  這條命令是將所有.jpg的文件打成一個tar包,並且調用bzip2壓縮,生成一個bzip2壓縮過的包,包名為all.tar.bz2
  tar -xjf all.tar.bz2
  這條命令是將上面產生的包解開。

??? 3)tar調用compress

compress也是一個壓縮程序,但是好象使用compress的人不如gzip和bzip2的人多。.Z結尾的文件就是bzip2壓縮的結果。與compress相對的解壓程序是uncompress。tar中使用-Z這個參數來調用gzip。下面來舉例說明一下:
  tar -cZf all.tar.Z *.jpg
  這條命令是將所有.jpg的文件打成一個tar包,並且調用compress壓縮,生成一個uncompress壓縮過的包,包名為all.tar.Z
   tar -xZf all.tar.Z
  這條命令是將上面產生的包解開

有了上面的知識,你應該可以解開多種壓縮文件了,下面對於tar系列的壓縮文件作一個小結:
  1)對於.tar結尾的文件
  tar -xf all.tar
  2)對於.gz結尾的文件
  gzip -d all.gz
  gunzip all.gz
  3)對於.tgz或.tar.gz結尾的文件
  tar -xzf all.tar.gz
  tar -xzf all.tgz
  4)對於.bz2結尾的文件
  bzip2 -d all.bz2
  bunzip2 all.bz2
  5)對於tar.bz2結尾的文件
  tar -xjf all.tar.bz2
  6)對於.Z結尾的文件
  uncompress all.Z
  7)對於.tar.Z結尾的文件
  tar -xZf all.tar.z

1)對於.zip
  linux下提供了zip和unzip程序,zip是壓縮程序,unzip是解壓程序。它們的參數選項很多,這裏只做簡單介紹,依舊舉例說明一下其用法:
   zip all.zip *.jpg
  這條命令是將所有.jpg的文件壓縮成一個zip包

????? 註意:如果要壓縮的是個文件夾,則要加上-r參數,表示調用遞歸壓縮,如:

????? zip -r temp.zip temp

??? ??? unzip all.zip
  這條命令是將all.zip中的所有文件解壓出來

splist::分割一個文件為多個文件

分割大的 tar 文件為多份小文件
split –b Size –d tar-file-name prefix-name
split -b 1M –d mybackup.tgz mybackup-parts
split -b 1M mybackup.tgz mybackup-parts
合並:
cat mybackup-parts* > mybackup.tar.gz

cpio

cpio 的功能 : 回復文件從或到歸檔

cpio的命令是通過重定向的方式將文件進行打包備份,還原回復的工具,以.cpio 或者.tar結尾的文件
選項 -0 :是將文件拷貝打包生成文件或者將文件輸出到設備上或者重定向

-i : 解包

-t :預覽,查看文件內容或者輸出到設備上的內容

-v : 顯示打包過程的文件名稱

-d : 解包生成目錄,在cpio還原時自動建立目錄

-c : 一種較新的存儲方式

find /etc/sysconfig/ |cpio -ov >sysconfig.cpio 查找/etc/sysconfig/目錄下的文件打包輸出到 sysconfig.cpio 的文件中以.cpio結尾
技術分享圖片
預覽sysconfig.cpio的內容 cpio -tv < sysconfig.cpio

技術分享圖片
cpio -idv < sysconfig.cpio 解包是按照絕對路徑解包sysconfig.cpio 並生成目錄
技術分享圖片

8.2壓縮、解壓縮及歸檔工具