gziplinux
gzip經過Lempel-ziv算法來壓縮文件,壓縮的時候保留每一個文件的全部者、權限、修改時間。對於符號連接,gzip將會忽略它。算法
若是壓縮的文件名對其文件系統來講太長,則gzip將截斷它。Gzip試圖只截斷文件名中超過3個字符的部分。(部分由點分隔。)若是名稱僅由小部件組成,最長的部分將被截斷。例如,若是文件名限制爲14個字符,則「gzip.msdos.exe」壓縮爲「gzi.msd.exe.gz」。在沒有文件名長度限制的系統中,名稱不會被截斷。測試
默認狀況下,gzip將原始文件名和時間戳保存在壓縮文件中。這些在使用「-N」選項解壓縮文件時使用。當壓縮文件名被截斷或文件傳輸後沒有保留時間戳時,這是很是有用的。壓縮文件可使用「gzip –d」或「gunzip」或「zcat」恢復到它們的原始形式。若是保存在壓縮文件中的原始名稱不適合其文件系統,則從原始文件中構造新名稱以使其合法。ui
gunzip在其命令行中獲取一個文件列表,並替換其名稱以.gz、-z、-z、_z或.z結尾的每一個文件,該文件以正確的魔術號開頭,文件的未壓縮文件沒有原來的擴展名。gunzip還將特殊的擴展名.tgz和.taz分別識別爲.tar.gz和.tar.z的縮寫。壓縮時,gzip在必要時使用.tgz擴展名,而不是截斷擴展名爲.tar的文件。編碼
gunzip目前能夠解壓縮由gzip,zip,compress-H或Pack建立的文件.輸入格式的檢測是自動的。當使用前兩種格式時,gunzip檢查32位CRC。對於包,槍拉鍊檢查未壓縮長度。標準壓縮格式的設計不是爲了容許一致性檢查。然而,gunzip有時可以檢測到一個壞的.z文件。若是在解壓縮.z文件時出現錯誤,請不要僅僅由於標準解壓縮不抱怨而認爲.Z文件是正確的。這一般意味着標準解壓縮不檢查其輸入,並愉快地生成垃圾輸出。上海合做組織壓縮-H格式(lzh壓縮方法)不包括一個CRC,但也容許一些一致性檢查。spa
由zip建立的文件只有在使用「通縮」方法壓縮單個成員的狀況下才能被gzip解壓縮。此特性僅用於幫助將tar.zip文件轉換爲tar.gz格式。要使用單個成員提取zip文件,可使用諸如「gunzip < foo.zip」或「gunzip –S .zip foo.zip」之類的命令。要提取包含多個成員的zip文件,請使用解壓縮而不是gunzip。命令行
Zcat和「gunzip –c」是同樣的。(在某些系統上,能夠將zcat安裝爲gzcat,以保留原始連接以進行壓縮。)zcat解壓縮命令行上的文件列表或其標準輸入,並將未壓縮的數據寫入標準輸出。不管是否有.gz後綴,zcat都會解壓縮具備正確魔術號的文件。設計
Gzip使用用於zip和PKZIP的Lempel-Ziv算法。得到的壓縮量取決於輸入的大小和經常使用子字符串的分佈。一般,像源代碼或英語這樣的文本會減小60-70%.壓縮一般比LZW(用於壓縮)、Huffman編碼(用於Pack)或自適應Huffman編碼(緊湊)要好得多。code
壓縮老是被執行,即便壓縮文件比原始文件稍大。最壞的狀況是gzip文件頭的幾個字節,加上每32K塊5個字節,或者大文件的擴展率爲0.015%。注意,使用過的磁盤塊的實際數量幾乎從未增長。gzip在壓縮或解壓縮時保留文件的模式、全部權和時間戳。orm
此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、語法
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
2、選項列表
選項 |
說明 |
-h | --help |
幫助信息 |
-V | --version |
顯示命令版本信息 |
-a | --ascii |
文本模式,只適用於某些系統 |
-c | --stdout | --to-stdout |
將解壓文件寫到標準輸出,源文件不變。若是有多個輸入文件,則輸出由一系列獨立壓縮的成員組成。爲了得到更好的壓縮,在壓縮全部輸入文件以前先將它們鏈接起來。 |
-d | --decompress | --uncompress |
解壓 |
-f | --force |
強制執行 |
-l | --list |
對於每個壓縮的文件,列出壓縮文件大小、解壓大小、壓縮比列、壓縮前的文件名字 |
-L | --license |
列出gzip的許可證 |
-n | --no-name |
壓縮文件的時候,不保留原始文件名字和時間屬性 |
-N | --name |
壓縮的時候,保留原始文件和時間屬性 |
-q | --quite |
跳過全部的警告信息 |
-r | --recursive |
遞歸壓縮子目錄 |
-S |.suf | --suffix | .suf |
指定壓縮文件後綴。壓縮時,使用後綴.suf代替.gz。能夠提供任何非空後綴,但應避免使用.z和.gz之外的後綴,以免文件傳輸到其餘系統時出現混淆。 |
-t | --test |
測試 |
-v | --verbose |
顯示執行過程 |
-num | --fast | --best |
使用指定的數字num調整壓縮速度,其中-1或--fast表示最快的壓縮方法(較小的壓縮)和-9或--best表示最慢的壓縮方法(最佳壓縮)。默認的壓縮級別是-6(也就是說,以犧牲速度爲代價傾向於高壓縮)。 |
3、環境變量
環境變量GZIP能夠保存gzip的一組默認選項。這些選項首先被解釋,能夠被顯式命令行參數覆蓋。例如
|
在VAX/VMS上,環境變量的名稱爲GZIP_OPT,以免與用於調用程序的符號設置衝突。
4、診斷信息
退出狀態一般爲0;若是發生錯誤,退出狀態爲1。若是發生警告,退出狀態爲2。
Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
|
5、一些先進用法
能夠鏈接多個壓縮文件。在這種狀況下,gunzip將當即提取全部成員。例如:
|
若是.gz文件的一個成員被損壞,其餘成員仍然能夠恢復(若是損壞的成員被移除)。可是,您能夠經過一次壓縮全部成員來得到更好的壓縮。
|
若是您想要從新壓縮鏈接的文件以得到更好的壓縮,可使用
|
若是一個壓縮文件由多個成員組成,則--list選項報告的未壓縮大小和CRC僅適用於最後一個成員。若是須要全部成員的未壓縮大小,可使用
|
若是但願建立一個包含多個成員的單個歸檔文件,以便之後能夠獨立提取成員,請使用一個歸檔程序(如tar或zip)。GNUtar支持-z選項來透明地調用gzip。gzip是做爲tar的補充,而不是替代。
6、實例
1)壓縮文件
|
2)解壓
|
3)將兩個文件壓縮到一個文件中
|