天天看點

鳥哥的linux私房菜-檔案壓縮于打包-1

 linux作業系統資料的存取是以byte為機關的,如果存數字1,其實是占用了1bit的空間,但是為了滿足linux作業系統的要求,必須将數字1轉換為一個byte來存儲,這樣,就浪費了7個bit的存儲空間。

壓縮的指令就是讓将作業系統所需要的byte機關化成最小的bit機關來存儲資料,這樣就能減少很多存儲空間,達到壓縮的目的。

完全手冊,linux系統與網絡服務管理技術大全

<b>compress</b><b>指令:</b>

<b></b>

compress這個壓縮指令是非常老舊的一款,大概隻有在非常舊的Unix 機器上面還會找到這個軟體。

CentOS 預設并沒有安裝這個軟體到系統當中,是以想要了解這個軟體的使用時,請先安裝ncompress 這個軟體。 不過,由於gzip 已經可以解開使用compress 壓縮的檔案,是以,compress 可以不用學習啦! 但是,如果你所在的環境還是有老舊的系統,那麼還是得要學一學就是了。好了,如果你有網絡的話,那麼安裝其實很簡單;

安裝compress :yum install ncompress

參數:

-r : 可以連通目錄下的檔案也同時給予壓縮

-c : 将壓縮資料輸出成為standard output(輸出到熒幕)

-v : 可以秀出壓縮後的檔案咨訊以及壓縮過程中的一些檔名變化

uncompress 檔案.Z

compress -v 222 : 壓縮222檔案,并且有資訊輸出來,包括壓縮率

compress -v man.config :壓縮man.config檔案(注:壓縮後隻有man.config.Z存在,man.config被覆寫)

man.config: -- replaced with man.config.Z Compression: 41.86%(分别有壓縮man.config的一些資訊出來,包括壓縮後的檔案名:man.config.Z,壓縮率:41.86%)

uncompress man.config.Z : 解壓縮man.config.Z

compress -c man.config&gt;man.config.back.Z  : 将man.config壓縮成man.config.back.Z檔案來備份;

<b>gzip </b><b>指令和zcat指令:</b>

-c :将壓縮的資料輸出到螢幕上,可透過資料流重導向來處理;(-c參數,不覆寫原先的檔案,備份出來源檔案.gz檔案)

-d :解壓縮的參數;

-t :可以用來檢驗一個壓縮檔的一緻性~看看檔案有無錯誤;

f  :新增一個參數,f為不提醒的意思;

<a href="http://blog.51cto.com/attachment/201212/192839537.png" target="_blank"></a>

-v :可以顯示出原檔案/壓縮檔案的壓縮比等資訊;

-# :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!預設是-6

zcat 指令:

若22是個文檔,若壓縮後成為了22.gz檔案,則,可以用zcat來讀取;

常用的指令為:

gzip -c -9 111 &gt; 111.gz :保留111,備份111.gz檔案(-9為壓縮等級,1-9,預設為6,壓縮時間比較長,但壓縮比比較高的參數)

gzip -c 111 &gt; 111.gz :同上(預設的為-6)

gzip -v 111 和gzip -v 111 &gt; 111.zip 一樣,都是在螢幕上顯示壓縮資訊,但是覆寫源檔案;

zcat 111.gz :檢視111.gz的源檔案111的内容

<a href="http://blog.51cto.com/attachment/201212/192855706.png" target="_blank"></a>

<b>bzip2</b><b>指令和bzcat指令:</b>

若說gzip 是為了取代compress 并提供更好的壓縮比而成立的,那麼bzip2 則是為了取代gzip 并提供更佳的壓縮比而來的。()

-c :将壓縮的過程産生的資料輸出到螢幕上!

-d :解壓縮的參數

-k :保留原始檔案,而不會删除原始的檔案喔!

-z :壓縮的參數

-f : 若有沖突,則不予提醒;

-# :與gzip 同樣的,都是在計算壓縮比的參數,-9 最佳,-1 最快!

bzcat 指令:專門檢視用bzip2指令壓縮的文本檔案

bzcat passwd.bz2 : 檢視壓縮檔案passwd檔案的内容(不能用bzcat passwd來檢視普通檔案passwd的内容)

(值得注意的是,前面幾個壓縮指令bzip2,gzip,compress都是針對一個單檔案進行壓縮的,tar指令式對檔案的壓縮與打包)

<b>tar </b><b>指令:</b>

-c :建立打封包件,可搭配-v 來察看過程中被打包的檔名(filename)

-t :察看打封包件的内容含有哪些檔名,重點在察看『檔名』就是了;

-x :解打包或解壓縮的功能,可以搭配-C (大寫) 在特定目錄解開

<b>特别留意的是,-c, -t, -x </b><b>不可能同時出現在一串指令列中。</b>

-j :透過bzip2 的支援進行壓縮/解壓縮:此時檔名最好為*.tar.bz2

-z :透過gzip 的支援進行壓縮/解壓縮:此時檔名最好為*.tar.gz

-v :在壓縮/解壓縮的過程中,将正在處理的檔名顯示出來!

-f filename:-f 後面要立刻接要被處理的檔名!建議-f 單獨寫一個選項羅!

-C 目錄  :這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。

其他後續練習會使用到的選項介紹:

-p(小寫p) :保留備份資料的原本權限與屬性,常用於備份(-c)重要的配置檔

-P :保留絕對路徑,亦即允許備份資料中含有根目錄存在之意;

--exclude=FILE:在壓縮的過程中,不要将FILE 打包!

tar -jpcv -f ./etc.tar.bz2 /etc : 調用bzip2壓縮将etc目錄打包成etc.tar.bz2,在壓縮過程中,顯示壓縮的過程,c屬性為指定目錄,沒有c不行,并存放在目前目錄下;

也可以寫成:tar -jcpvf ./etc.tar.bz2 /etc   ;

tar -jtvf etc.tar.bz2 :檢視目前檔案夾内的etc.tar.bz2壓縮包裡面的内容,參數t是檢視打封包件的内容含有哪些文檔名;-v參數是顯示的比較全面的檔案資訊(包括檔案的權限/屬性都會被列出來);-j參數是調用bzip2壓縮指令;-f參數必須寫到最後,後面立刻接要被處理的文檔名,是以-f一般另外寫出來;

tar -jxv -f etc.tar.bz2 -C /tmp/userpro :将目前目錄下的etc.tar.bz2檔案解壓到tmp的userpro目錄裡;-x參數為解壓,j為調用bzip2指令,-v參數為顯示解壓過程中的文檔名(可要可不要);

<b>壓 </b><b>縮:tar -jcv -f filename.tar.bz2 </b><b>要被壓縮的檔案或目錄名稱</b>

<b>查 </b><b>詢:tar -jtv -f filename.tar.bz2</b>

<b>解壓縮:tar -jxv -f filename.tar.bz2 -C </b><b>欲解壓縮的目錄</b>

總結:

tar -jpcvf etc.tar.bz2 etc :壓縮etc檔案為etc.tar.bz2,p參數可以不寫,備份的時候p是為了確定檔案的屬性為原來的屬性;c參數為建立壓縮檔案;j為調用bzip2指令,v為顯示壓縮的檔案名(可以不寫),f參數後立馬跟要壓縮的檔案(必須寫,最好另外寫);

tar -jpcf etc.tar.bz2 etc : 和上邊的意思一樣;

tar -jtvf etc.tar.gz :用長格式檢視參數j(也就是gzip指令)壓縮的檔案,參數v為長格式檢視;

tar -jtf etc.tar.bz2 : 檢視用參數j(也就是由bzip2指令)壓縮的檔案

tar -tf etc.tar.bz2 :和上邊的一樣,壓縮參數z可以去掉;

tar -jxvf etc.tar.bz2 -C /u01/userpro/111 :解壓etc.tar.bz2檔案到/u01/userpro/111檔案夾下,-C參數為制定解壓到的目錄;

tar -jxvf etc.tar.bz2 :解壓用參數j(也就是bzip2指令)壓縮的檔案,v參數為檢視

tar -jxf etc.tar.bz2 :解壓用參數j(也就是bzip2指令)壓縮的檔案

tar -xf etc.tar.bz2 :和上邊的一樣,j參數可以省略;

<a href="http://blog.51cto.com/attachment/201212/192932201.jpg" target="_blank"></a>

tar -zpcvf etc.tar.gz etc : 壓縮etc檔案為etc.tar.gz,v參數可以不寫,寫上v可以檢視壓縮的檔案;

tar -zpcf etc.tar.gz etc :和上一個一樣,沒有v參數,不能看到壓縮了哪些檔案。

tar -ztvf etc.tar.gz :檢視用參數z(也就是gzip指令)壓縮的檔案etc.tar.gz,v參數以長檔案格式檢視壓縮檔裡面的檔案;

tar -ztf etc.tar.gz :檢視用參數z(也就是gzip指令)壓縮的檔案etc.tar.gz

tar -zxvf etc.tar.gz -C /u01/userpro/111 : 解壓目前目錄下的etc.tar.gz檔案到/u01/userpro/111目錄下,-C參數為制定解壓目錄;

tar -zxvf etc.tar.gz :解壓etc.tar.gz檔案到目前目錄下,v參數為檢視解壓出來的檔案;

tar -(z可用可不用)xf etc.tar.gz :解壓etc.tar.gz檔案到目前目錄下,靜默解壓;

 本文轉自 murongqingqqq  51CTO部落格,原文連結:http://blog.51cto.com/murongqingqqq/1092348

繼續閱讀