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>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 > 111.gz :保留111,備份111.gz檔案(-9為壓縮等級,1-9,預設為6,壓縮時間比較長,但壓縮比比較高的參數)
gzip -c 111 > 111.gz :同上(預設的為-6)
gzip -v 111 和gzip -v 111 > 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