Provided by:
manpages-zh_1.5.1-2_all 
NAME
gzip, gunzip, zcat - 壓縮或展開檔案
`攬
gzip [ -acdfhlLnNrtvV19 ] [-SW] [ W ... ]
gunzip [ -acfhlLnNrtvV ] [-SW] [ W ... ]
zcat [ -fhLV ] [ W ... ]
yz
Gzip 採用Lempel-Ziv 編碼算法(LZ77)壓縮給定檔案的大小。 在可能的情況下,
每蚗仵袕Q具有擴展名 .gz, 的檔案所替換, 同時保留嚄搘D狀態,存取和蚹黈伅
(在VMS系統下預設擴展名為 -gz 在MSDOS、OS/2 FAT, Windows NT FAT
和Atari系統下,預設擴展名為 z ) 如果未指定檔名,或者指定了一-
茼W為"-"的檔名,則從標準輸入讀取數據,壓縮的 結果輸出到標準輸出。 Gzip
只嘗試壓縮常規檔案,特別地,它將忽略符號連接。
如果壓縮後的檔名對於所在的檔案系統來說太長, gzip 會將其截斷。 Gzip
只嘗試截斷檔名中大於3茼r符的段(每茯q由點分隔)。如果檔名只由較小的段
組成,最長的段將被截斷。例如,如果檔名的長度制是14-
茼r符,檔案gzip.msdos.exe 將被壓縮為gzi.msd.exe.gz。在沒有檔名長度-
制的系統中,檔名將不會被截斷。
預設情況下, gzip 將鴝l檔名和時間信息保存在壓縮後的檔案中。 當採用 -N
選項解壓縮檔案時,這些信息將被利用。在經過檔案傳輸後檔名被截斷及時間信息
未被保留的情況下,這些信息將將用於恢復檔名及時間信息。
用 gzip -d 或者 gunzip 以及 zcat. 可以將壓縮後的檔案恢復到-
鴝l的形式。如果保留在壓縮檔案中的鴝l檔名不適合
於當前的檔案系統,將根據嚓犰W新建一茼X法的檔名。
gunzip 將命令行中以.gz, -gz, .z, -z, _z 或 .Z結尾並具有正確標誌頭的檔案
解壓縮,並以去掉擴展名的解壓縮檔案替換嚓仵蛂C gunzip 也能識別擴展名為
.tgz 和 .taz 的檔案,並將其分別當作 .tar.gz 和 .tar.Z 的縮寫。
在壓縮時,如果採用 .tar 擴展名則需n對檔名進行截斷處理時, gzip 將採用
.tgz 作為擴展名。
gunzip 目前能夠解壓由 gzip, zip, compress, compress -H 以及 pack
產生的檔案。 對輸入格式的檢測是自動的。當採用前兩種格式時, gunzip
檢查一32位的CRC校驗碼。對於 pack, gunzip
則檢查壓縮前的數據長度。標準的 compress 格式的設p無法實現一-
P性檢查。但有時 gunzip 仍然能檢測到壞的.Z檔案。如果你在解壓一-
.Z檔案時出現錯誤,不n簡單地因為標準的 uncompress
沒有報錯就認定.Z檔案是正確的。 這通常意味著標準的 uncompress
沒有檢查它的輸入數據,而盲目地產生了錯誤的輸出。SCO的compress
-H格式(lzh壓縮方 法)不包含CRC校驗碼,但也允酗@些一P性檢查。
由 zip 生成的檔案, 如果其內容只有一-
蚗仵蚳疇B是以'deflation'方式壓縮的,則可
由gzip解壓。這一特性只是為了方便將tar.zip
格式的檔案轉換為tar.gz格式而加入的。 n解壓含有多蚗仵蛌漠ip檔案,請用
unzip.
zcat 的弁鉬P gunzip -c. 相同。 (在一些系統中, zcat 可能被安裝成 gzcat
以保留 compress 與zcat的鴞陶s接。) zcat
將命令行中列出的檔案或由標準輸入輸入的數據解壓,解壓後的數據寫到標準輸出。
zcat 解壓具有正確標誌頭的檔案,而不管其是否帶有 .gz 延伸檔名。
Gzip 採用 zip 和 PKZIP 中所採用的Lempel-
Ziv算法。得到的壓縮比依賴於輸入數據的大小以及公用
子串的分布。例如源程式和^文文件能夠壓縮60-70%。 壓縮比通常比LZW(
compress 採用的算法)、Huffman編碼( pack
所採用的算法)、以及自適應Huffman編碼( compact) 等方法n好得多。
即使壓縮後的檔案略大於-
嚓仵蛂A壓縮也照樣進行。最壞的情況下,多出的數據包括 gzip檔案頭中的Y幹-
茼r節,加上每塊32K的5茼r節,或者,對於大檔案來說0.015%
的放大率。注意實際佔用的硬碟塊數目幾乎從不增加。 gzip
在壓縮和解壓縮時保留嚓仵蛌瘧搘D和時間信息。
項
-a --ascii
Ascii文字模式:按本地習慣轉換行結束符。該選項僅在一些非Unix
系統上有效。 對於MSDOS,在壓縮時CR
LF(譯注:即回車和換行符)被轉換為LF,在解壓時LF被 轉換為CR LF。
-c --stdout --to-stdout
將結果寫到標準輸出;嚓仵蚴O持不變。如果有多-
蚇擗J檔案,輸出將由一系列
獨立的壓縮檔案組成。如果想得到較好的壓縮率,在壓縮前應將多-
蚗仵袕s在一起。
-d --decompress --uncompress
解壓縮。
-f --force
強制壓縮和解壓縮,即使指定檔案具有多-
奕s接,或相應檔案已經存在,或壓縮數據 來自或寫往一茞袟搳C
如果輸入數據是 gzip
無法識別的格式,同時在命令行中也給出了--stdout選項,gzip將把輸入數據拷貝至標準
輸出而不做任何改動,就像cat所做的一樣。 如果未給出 -f
選項,並且未在I景運行, gzip 會提示使用者以確認是否覆誘@-
茪w存在的檔案。
-h --help
顯示幫助信息然後退出。
-l --list
列出每蚗Y檔案的如下項目:
compressed size: 壓縮檔案的長度
uncompressed size: 壓縮前檔案的長度
ratio: 壓縮率(如果未知則為0.0%)
uncompressed_name: 壓縮前的檔名
對於非gzip格式的檔案,壓縮前檔案長度顯示為-1,例如由compress壓縮的.Z檔案。
可用下列命令得到這種檔案壓縮前的長度:
zcat file.Z | wc -c
如果同時指定了--verbose選項,下列項目也被列出:
method: 壓縮方式
crc: 未壓縮數據的32位CRC校驗碼
date & time: 壓縮前檔案的時間信息
目前支持的壓縮方式有deflate、compress、lzh(SCO下的compress
-H)以及pack等方式。
對於非gzip格式的檔案,crc校驗碼顯示為ffffffff。
Y指定了--name選項,如果有的話,壓縮前檔名,日期以及時間是保存在壓縮檔案中
的內容。
Y指定了--verbose選項,還將列出所有檔案的長度總和,除非某些檔案的長度未知。
Y指定--quiet選項,將不顯示標題和合p兩行內容。
-L --license
顯示 gzip 的野i証信息然後退出。
-n --no-name
在壓縮時,預設不保留-
鴝l檔名和時間信息。(如果必須對檔名作截斷處理, 則-
鴝l檔名總是被保存。) 在解壓縮時,即使有也不恢復鴝l檔名(僅將壓
縮檔名中的 gzip
延伸檔名去掉)和時間信息(拷貝壓縮檔案中相應信息)。該選項是壓縮時的預設選項。
-N --name
在壓縮時總是保存-
鴝l檔名和時間信息;該選項為預設選項。在解壓縮時,如果 存在-
鴝l檔名和時間信息則恢復之。該選項可用於對檔名長度有制的系統,
以及經過檔案傳輸後丟失時間信息的情況。
-q --quiet
壓制所有警告訊息。
-r --recursive
遞歸地訪問目錄結構。如果命令行中有目錄名, gzip
將進入目錄並壓縮所有找到的檔案(如果執行的命令是 gunzip
則對其解壓縮)。
-S .suf --suffix .suf
採用.suf延伸檔名取代.gz延伸檔名。可以指定任何延伸檔名,但應避免使用除了.z和.gz以外
的其它延伸檔名,以免檔案傳輸到其它系統時發生混淆。一-
茠觼策钀犰W將◢殶unzip
解壓縮所有檔案而不管它具有什麼樣的延伸檔名,例如:
gunzip -S "" * (在MSDOS下用*.*替換*)
以前版本的gzip採用.z延伸檔名。為了避免與 pack(1).
沖突,後來作了改動。
-t --test
測試。檢查壓縮檔案的完整性。
-v --verbose
詳盡模式。顯示每蚗Y或解壓縮檔案的名字和壓縮率。
-V --version
版本。顯示版本號和編譯選項後退出。 Version. Display the version
number and compilation options then quit.
-# --fast --best
用指定的數字 # 調整壓縮速度, 其中 -1 及 --fast
對應最快壓縮方式(壓縮率較低), -9 及 --best
對應最慢壓縮方式(壓縮率最佳)。預設的壓縮級別為 -6
(也就是說,以速度為代價偏向於高壓縮率)。
k
多茬Q壓縮的檔案可以連在一起。在這種情況下, gunzip
能一次解壓所有檔案。例如:
gzip -c file1 > foo.gz
gzip -c file2 >> foo.gz
然後
gunzip -c foo
上悸漫R令等價於
cat file1 file2
如果.gz檔案中的某一-
蚗仵袚l壞,其他檔案仍可以恢復(如果損壞的檔案被刪除的話)。
而且一次壓縮所有檔案能得到較好的壓縮率:
cat file1 file2 | gzip > foo.gz
上悼峈k的壓縮率比下悼峈k的高:
gzip -c file1 file2 > foo.gz
如果想奐s壓縮連接起來的檔案以得到較高的壓縮率,可以用下悸漫R令:
gzip -cd old.gz | gzip > new.gz
如果一蚗Y檔案由多蚗仵袉捰芋A--list選項只能列出最後一茼叔的
解壓後檔案長度和CRC校驗碼。如果需n所有成-
的解壓後檔案長度,可用如下命令:
gzip -cd file.gz | wc -c
如果想n產生一茖膃釵h茼叔的存檔檔案,以便將來能夠獨立地取出其中的成,
可以用tar或zip這樣的歸檔軟體。GNU
tar支持-z選項,可直接調用gzip。gzip設p為 tar的補充,而非它的取代物。
q
環境變量 GZIP 能夠控制一系列 gzip 的預設選項。 這些選項被-
漸解釋,並且能被命令行參數中的直接定義覆說C例如:
在sh下: GZIP="-8v --name"; export GZIP
在csh下: setenv GZIP "-8v --name"
在MSDOS下: set GZIP=-8v --name
在Vax/VMS系統中,為了避免與調用該程式的符號設置沖突,該環境變量名為GZIP_OPT。
t見
znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1),
compress(1), pack(1), compact(1)
E
正常的退出狀態為0;如果出現錯誤,退出狀態為1。如果出現警告訊息,退出狀態為2。
Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
在命令行中出現非法的選項。
file: not in gzip format
指定給 gunzip 的檔案沒有被壓縮。
file: Corrupt input. Use zcat to recover some data.
壓縮檔案已損壞。在損壞點以前的數據可以用下列命令恢復。
zcat file > recover
file: compressed with xx bits, can only handle yy bits
檔案 File 是由一茪韘b當前機器上能處理更多
的程式壓縮的(採用LZW算法)。用gzip-
奐s壓縮該檔案,將得到較好的壓縮率,並且 佔用的記憶體較少。
file: already has .gz suffix -- no change
gzip認為該程式已經壓縮。改變檔名再試。
file already exists; do you wish to overwrite (y or n)?
如果你想覆遘蚗仵蛈^答"y",如果不是回答"n"。
gunzip: corrupt input
探測到一紎IGSEGV非法操作,這通常意味著輸入檔案已經損壞。
xx.x%
由於壓縮而減少的數據量相對於輸入數據的百分比。(僅對應於 -v 和
-l 選項。)
-- not a regular file or directory: ignored
如果輸入檔案不是常規檔案或目錄,(例如符號連接,socket檔案,FIFO檔案,
設備檔案),該檔案將保持不變。
-- has xx other links: unchanged
該檔案有連接,將保持不變。更多信息參見 ln(1). 採用 -f
強制壓縮多奕s接檔案。
i
在向磁帶寫壓縮數據時,通常需n在數據尾部充零以使數據總長度為磁帶數據塊
長度的整數縑C當用 gunzip 對這樣的數據解壓縮時, gunzip
能檢測到尾部的無用數據,在預設情況下將發出一蚅筆i訊息。必須採用--quiet
選項才能壓制這一警告訊息。該選項可以設在 GZIP 環境變量中,例如:
在sh下: GZIP="-q" tar -xfz --block-compress /dev/rst0
在csh下: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0
在上悸漕狺l中,gzip被採用了-z選項的GNU
tar調用。在磁帶上讀寫壓縮數據時, 應確保採用同樣的數據塊長度(tar的 -b
選項)。(本例假定使用的是GNU版本的tar。)
陷
如果數據長度超過2GB, 採用--list選項時報告的檔案長度不正確。
如果壓縮檔案位於不能定位的存儲介質上,採用--list選項時報告的檔案長度為-1,crc
校驗碼為ffffffff。
在極少數情況下,--best選項得到的壓縮率比預設情況(-6)還差。對於一些高度冗餘
的檔案, compress 比 gzip 壓縮得更好。
[]
Liu JingSong <js-liu@263.net>
[]
2000/12/28
[inuxanhttp://cmpp.linuxforum.net
local GZIP(1)