Man page - gzip(1)
Packages contains this manual
Available languages:
en fr pl tr ja uk ru ro zh_TW zh_CN deManual
GZIP
NAME總 攬
描 述
選 項
高 階 用 法
環 境 變 數
另 見
診 斷
警 告
缺 陷
[中 文 版 維 護 人 ]
[中 文 版 最 新 更 新 ]
[中 國 Linux論 壇 man手 冊 頁 翻 譯 計 劃 ]
跋
NAME
gzip, gunzip, zcat - 壓 縮 或 展 開 檔 案
總 攬
gzip
[
-acdfhlLnNrtvV19
] [
-S 字 尾
] [
檔 名 ...
]
gunzip
[
-acfhlLnNrtvV
] [
-S 字
尾
] [
檔 名 ...
]
zcat
[
-fhLV
] [
檔 名 ...
]
描 述
Gzip 採 用 Lempel-Ziv 編 碼 演 算 法 (LZ77)壓 縮 給 定 檔 案 的 大 小 。 在 可 能 的 情 況 下 , 每 個 檔 案 被 具 有 副 檔 名 .gz, 的 檔 案 所 替 換 , 同 時 保 留 原 屬 主 狀 態 , 存 取 和 修 改 時 間 (在 VMS系 統 下 預 設 副 檔 名 為 -gz 在 MSDOS、 OS/2 FAT, Windows NT FAT 和 Atari系 統 下 , 預 設 副 檔 名 為 z ) 如 果 未 指 定 檔 名 , 或 者 指 定 了 一 個 名 為 "-"的 檔 名 , 則 從 標 準 輸 入 讀 取 資 料 , 壓 縮 的 結 果 輸 出 到 標 準 輸 出 。 Gzip 只 嘗 試 壓 縮 常 規 檔 案 , 特 別 地 , 它 將 忽 略 符 號 連 線 。
如 果 壓 縮 後 的 檔 名 對 於 所 在 的 檔 案 系 統 來 說 太 長 , gzip 會 將 其 截 斷 。 Gzip 只 嘗 試 截 斷 檔 名 中 大 於 3個 字 元 的 段 ( 每 個 段 由 點 分 隔 ) 。 如 果 檔 名 只 由 較 小 的 段 組 成 , 最 長 的 段 將 被 截 斷 。 例 如 , 如 果 檔 名 的 長 度 限 制 是 14個 字 元 , 檔 案 gzip.msdos.exe 將 被 壓 縮 為 gzi.msd.exe.gz。 在 沒 有 檔 名 長 度 限 制 的 系 統 中 , 檔 名 將 不 會 被 截 斷 。
預 設 情 況 下 , gzip 將 原 始 檔 名 和 時 間 資 訊 儲 存 在 壓 縮 後 的 檔 案 中 。 當 採 用 -N 選 項 解 壓 縮 檔 案 時 , 這 些 資 訊 將 被 利 用 。 在 經 過 檔 案 傳 輸 後 文 件 名 被 截 斷 及 時 間 資 訊 未 被 保 留 的 情 況 下 , 這 些 資 訊 將 將 用 於 恢 復 檔 名 及 時 間 資 訊 。
用 gzip -d 或 者 gunzip 以 及 zcat. 可 以 將 壓 縮 後 的 檔 案 恢 復 到 原 始 的 形 式 。 如 果 保 留 在 壓 縮 檔 案 中 的 原 始 檔 名 不 適 合 於 當 前 的 檔 案 系 統 , 將 根 據 原 檔 名 新 建 一 個 合 法 的 檔 名 。
gunzip 將 命 令 列 中 以 .gz, -gz, .z, -z, _z 或 .Z結 尾 並 具 有 正 確 標 誌 頭 的 檔 案 解 壓 縮 , 並 以 去 掉 副 檔 名 的 解 壓 縮 檔 案 替 換 原 檔 案 。 gunzip 也 能 識 別 副 檔 名 為 .tgz 和 .taz 的 檔 案 , 並 將 其 分 別 當 作 .tar.gz 和 .tar.Z 的 縮 寫 。 在 壓 縮 時 , 如 果 採 用 .tar 副 檔 名 則 需 要 對 檔 名 進 行 截 斷 處 理 時 , gzip 將 採 用 .tgz 作 為 副 檔 名 。
gunzip 目 前 能 夠 解 壓 由 gzip, zip, compress, compress -H 以 及 pack 產 生 的 檔 案 。 對 輸 入 格 式 的 檢 測 是 自 動 的 。 當 採 用 前 兩 種 格 式 時 , gunzip 檢 查 一 個 32位 的 CRC校 驗 碼 。 對 於 pack, gunzip 則 檢 查 壓 縮 前 的 資 料 長 度 。 標 準 的 compress 格 式 的 設 計 無 法 實 現 一 致 性 檢 查 。 但 有 時 gunzip 仍 然 能 檢 測 到 壞 的 .Z檔 案 。 如 果 你 在 解 壓 一 個 .Z檔 案 時 出 現 錯 誤 , 不 要 簡 單 地 因 為 標 準 的 uncompress 沒 有 報 錯 就 認 定 .Z檔 案 是 正 確 的 。 這 通 常 意 味 著 標 準 的 uncompress 沒 有 檢 查 它 的 輸 入 資 料 , 而 盲 目 地 產 生 了 錯 誤 的 輸 出 。 SCO的 compress -H格 式 (lzh壓 縮 方 法 ) 不 包 含 CRC校 驗 碼 , 但 也 允 許 一 些 一 致 性 檢 查 。
由 zip 生 成 的 檔 案 , 如 果 其 內 容 只 有 一 個 檔 案 並 且 是 以 ’deflation’方 式 壓 縮 的 , 則 可 由 gzip解 壓 。 這 一 特 性 只 是 為 了 方 便 將 tar.zip 格 式 的 檔 案 轉 換 為 tar.gz格 式 而 加 入 的 。 要 解 壓 含 有 多 個 檔 案 的 zip檔 案 , 請 用 unzip.
zcat 的 功 能 與 gunzip -c. 相 同 。 (在 一 些 系 統 中 , zcat 可 能 被 安 裝 成 gzcat 以 保 留 compress 與 zcat的 原 有 連 線 。 ) zcat 將 命 令 列 中 列 出 的 檔 案 或 由 標 準 輸 入 輸 入 的 資 料 解 壓 , 解 壓 後 的 資 料 寫 到 標 準 輸 出 。 zcat 解 壓 具 有 正 確 標 誌 頭 的 檔 案 , 而 不 管 其 是 否 帶 有 .gz 字 尾 。
Gzip 採 用 zip 和 PKZIP 中 所 採 用 的 Lempel-Ziv演 算 法 。 得 到 的 壓 縮 比 依 賴 於 輸 入 資 料 的 大 小 以 及 公 用 子 串 的 分 佈 。 例 如 源 程 式 和 英 文 文 件 能 夠 壓 縮 60-70%。 壓 縮 比 通 常 比 LZW( compress 採 用 的 演 算 法 )、 Huffman編 碼 ( pack 所 採 用 的 演 算 法 ) 、 以 及 自 適 應 Huffman編 碼 ( compact ) 等 方 法 要 好 得 多 。
即 使 壓 縮 後 的 檔 案 略 大 於 原 檔 案 , 壓 縮 也 照 樣 進 行 。 最 壞 的 情 況 下 , 多 出 的 資 料 包 括 gzip檔 案 頭 中 的 若 干 個 位 元 組 , 加 上 每 塊 32K的 5個 位 元 組 , 或 者 , 對 於 大 檔 案 來 說 0.015% 的 放 大 率 。 注 意 實 際 佔 用 的 硬 碟 塊 數 目 幾 乎 從 不 增 加 。 gzip 在 壓 縮 和 解 壓 縮 時 保 留 原 檔 案 的 屬 主 和 時 間 資 訊 。
選 項
-a --ascii
Ascii文 字 模 式 : 按 本 地 習 慣 轉 換 行 結 束 符 。 該 選 項 僅 在 一 些 非 Unix 系 統 上 有 效 。 對 於 MSDOS, 在 壓 縮 時 CR LF(譯 註 : 即 回 車 和 換 行 符 )被 轉 換 為 LF, 在 解 壓 時 LF被 轉 換 為 CR LF。
-c --stdout --to-stdout
將 結 果 寫 到 標 準 輸 出 ; 原 檔 案 保 持 不 變 。 如 果 有 多 個 輸 入 檔 案 , 輸 出 將 由 一 系 列 獨 立 的 壓 縮 檔 案 組 成 。 如 果 想 得 到 較 好 的 壓 縮 率 , 在 壓 縮 前 應 將 多 個 檔 案 連 在 一 起 。
-d --decompress --uncompress
解 壓 縮 。
-f --force
強 制 壓 縮 和 解 壓 縮 , 即 使 指 定 檔 案 具 有 多 重 連 線 , 或 相 應 檔 案 已 經 存 在 , 或 壓 縮 資 料 來 自 或 寫 往 一 個 終 端 。 如 果 輸 入 資 料 是 gzip 無 法 識 別 的 格 式 , 同 時 在 命 令 列 中 也 給 出 了 --stdout選 項 , gzip將 把 輸 入 資 料 複 製 至 標 準 輸 出 而 不 做 任 何 改 動 , 就 象 cat所 做 的 一 樣 。 如 果 未 給 出 -f 選 項 , 並 且 未 在 後 臺 執 行 , gzip 會 提 示 使 用 者 以 確 認 是 否 覆 蓋 一 個 已 存 在 的 檔 案 。
-h --help
顯 示 幫 助 資 訊 然 後 退 出 。
-l --list
列 出 每 個 壓 縮 檔 案 的 如 下 專 案 :
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。
若 指 定 了 --name選 項 , 如 果 有 的 話 , 壓 縮 前 檔 名 , 日 期 以 及 時 間 是 儲 存 在 壓 縮 檔 案 中 的 內 容 。
若 指 定 了 --verbose選 項 , 還 將 列 出 所 有 檔 案 的 長 度 總 和 , 除 非 某 些 檔 案 的 長 度 未 知 。 若 指 定 --quiet選 項 , 將 不 顯 示 標 題 和 合 計 兩 行 內 容 。
-L --license
顯 示 gzip 的 許 可 證 資 訊 然 後 退 出 。
-n --no-name
在 壓 縮 時 , 預 設 不 保 留 原 始 檔 名 和 時 間 資 訊 。 (如 果 必 須 對 檔 名 作 截 斷 處 理 , 則 原 始 檔 名 總 是 被 儲 存 。 ) 在 解 壓 縮 時 , 即 使 有 也 不 恢 復 原 始 檔 名 ( 僅 將 壓 縮 檔 名 中 的 gzip 字 尾 去 掉 ) 和 時 間 資 訊 ( 複 製 壓 縮 檔 案 中 相 應 資 訊 ) 。 該 選 項 是 壓 縮 時 的 預 設 選 項 。
-N --name
在 壓 縮 時 總 是 儲 存 原 始 檔 名 和 時 間 資 訊 ; 該 選 項 為 預 設 選 項 。 在 解 壓 縮 時 , 如 果 存 在 原 始 檔 名 和 時 間 資 訊 則 恢 復 之 。 該 選 項 可 用 於 對 檔 名 長 度 有 限 制 的 系 統 , 以 及 經 過 檔 案 傳 輸 後 丟 失 時 間 資 訊 的 情 況 。
-q --quiet
壓 制 所 有 警 告 資 訊 。
-r --recursive
遞 迴 地 訪 問 目 錄 結 構 。 如 果 命 令 列 中 有 目 錄 名 , gzip 將 進 入 目 錄 並 壓 縮 所 有 找 到 的 檔 案 ( 如 果 執 行 的 命 令 是 gunzip 則 對 其 解 壓 縮 ) 。
-S .suf --suffix .suf
採 用 .suf字 尾 取 代 .gz字 尾 。 可 以 指 定 任 何 字 尾 , 但 應 避 免 使 用 除 了 .z和 .gz以 外 的 其 它 字 尾 , 以 免 檔 案 傳 輸 到 其 它 系 統 時 發 生 混 淆 。 一 個 空 字 尾 將 迫 使 gunzip 解 壓 縮 所 有 檔 案 而 不 管 它 具 有 什 麼 樣 的 字 尾 , 例 如 :
gunzip -S "" * (在 MSDOS下 用 *.*替 換 *)
以 前 版 本 的 gzip採 用 .z字 尾 。 為 了 避 免 與 pack (1) . 衝 突 , 後 來 作 了 改 動 。
-t --test
測 試 。 檢 查 壓 縮 檔 案 的 完 整 性 。
-v --verbose
詳 盡 模 式 。 顯 示 每 個 壓 縮 或 解 壓 縮 檔 案 的 名 字 和 壓 縮 率 。
-V --version
版 本 。 顯 示 版 本 號 和 編 譯 選 項 後 退 出 。 Version. Display the version number and compilation options then quit.
-# --fast --best
用 指 定 的 數 字 # 調 整 壓 縮 速 度 , 其 中 -1 及 --fast 對 應 最 快 壓 縮 方 式 ( 壓 縮 率 較 低 ) , -9 及 --best 對 應 最 慢 壓 縮 方 式 ( 壓 縮 率 最 佳 ) 。 預 設 的 壓 縮 級 別 為 -6 ( 也 就 是 說 , 以 速 度 為 代 價 偏 向 於 高 壓 縮 率 ) 。
高 階 用 法
多 個 被 壓 縮 的 檔 案 可 以 連 在 一 起 。 在 這 種 情 況 下 , gunzip 能 一 次 解 壓 所 有 檔 案 。 例 如 :
gzip -c file1
> foo.gz
gzip -c file2 >> foo.gz
然
後
gunzip -c foo
上 面 的 命 令 等 價 於
cat file1 file2
如 果 .gz檔 案 中 的 某 一 個 檔 案 損 壞 , 其 他 檔 案 仍 可 以 恢 復 ( 如 果 損 壞 的 檔 案 被 刪 除 的 話 ) 。 而 且 一 次 壓 縮 所 有 檔 案 能 得 到 較 好 的 壓 縮 率 :
cat file1 file2 | gzip > foo.gz
上 面 用 法 的 壓 縮 率 比 下 面 用 法 的 高 :
gzip -c file1 file2 > foo.gz
如 果 想 重 新 壓 縮 連 線 起 來 的 檔 案 以 得 到 較 高 的 壓 縮 率 , 可 以 用 下 面 的 命 令 :
gzip -cd old.gz | gzip > new.gz
如 果 一 個 壓 縮 檔 案 由 多 個 檔 案 組 成 , --list選 項 只 能 列 出 最 後 一 個 成 員 的 解 壓 後 文 件 長 度 和 CRC校 驗 碼 。 如 果 需 要 所 有 成 員 的 解 壓 後 文 件 長 度 , 可 用 如 下 命 令 :
gzip -cd file.gz | wc -c
如 果 想 要 產 生 一 個 具 有 多 個 成 員 的 存 檔 檔 案 , 以 便 將 來 能 夠 獨 立 地 取 出 其 中 的 成 員 , 可 以 用 tar或 zip這 樣 的 歸 檔 軟 體 。 GNU tar支 援 -z選 項 , 可 直 接 呼 叫 gzip。 gzip設 計 為 tar的 補 充 , 而 非 它 的 取 代 物 。
環 境 變 數
環
境 變 數
GZIP
能 夠
控 制 一 系 列
gzip
的 預 設 選 項 。
這 些 選 項 被 首
先 解 釋 , 並 且
能 被 命 令 列 引
數 中 的 直 接 定
義 覆 蓋 。 例 如 :
在 sh下 : GZIP="-8v --name"; export
GZIP
在 csh下 : setenv GZIP "-8v --name"
在 MSDOS下 : set GZIP=-8v --name
在 Vax/VMS系 統 中 , 為 了 避 免 與 呼 叫 該 程 式 的 符 號 設 定 衝 突 , 該 環 境 變 數 名 為 GZIP_OPT。
另 見
znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1), pack(1), compact(1)
診 斷
正 常 的 退 出 狀 態 為 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 是 由 一 個 比 在 當 前 機 器 上 能 處 理 更 多 位 的 程 式 壓 縮 的 ( 採 用 LZW演 算 法 ) 。 用 gzip重 新 壓 縮 該 檔 案 , 將 得 到 較 好 的 壓 縮 率 , 並 且 佔 用 的 記 憶 體 較 少 。
file : already has .gz suffix -- no change
gzip認 為 該 程 式 已 經 壓 縮 。 改 變 檔 名 再 試 。
file already exists; do you wish to overwrite (y or n)?
如 果 你 想 覆 蓋 該 檔 案 回 答 "y", 如 果 不 是 回 答 "n"。
gunzip: corrupt input
探 測 到 一 個 SIGSEGV非 法 操 作 , 這 通 常 意 味 著 輸 入 檔 案 已 經 損 壞 。
xx.x%
由 於 壓 縮 而 減 少 的 資 料 量 相 對 於 輸 入 資 料 的 百 分 比 。 ( 僅 對 應 於 -v 和 -l 選 項 。 )
-- not a regular file or directory: ignored
如 果 輸 入 檔 案 不 是 常 規 檔 案 或 目 錄 , ( 例 如 符 號 連 線 , socket檔 案 , FIFO檔 案 , 裝 置 檔 案 ) , 該 檔 案 將 保 持 不 變 。
-- has xx other links: unchanged
該 檔 案 有 連 線 , 將 保 持 不 變 。 更 多 資 訊 參 見 ln (1) . 採 用 -f 強 制 壓 縮 多 重 連 線 檔 案 。
警 告
在
向 磁 帶 寫 壓 縮
資 料 時 , 通 常
需 要 在 資 料 尾
部 充 零 以 使 資
料 總 長 度 為 磁
帶 資 料 塊 長 度
的 整 數 倍 。 當
用
gunzip
對 這 樣 的
資 料 解 壓 縮 時
,
gunzip
能 檢 測 到
尾 部 的 無 用 資
料 , 在 預 設 情
況 下 將 發 出 一
個 警 告 資 訊 。
必 須 採 用 --quiet 選
項 才 能 壓 制 這
一 警 告 資 訊 。
該 選 項 可 以 設
在
GZIP
環 境 變 數
中 , 例 如 :
在 sh下 : GZIP="-q" tar -xfz
--block-compress /dev/rst0
在 csh下 : (setenv GZIP -q; tar -xfz
--block-compr /dev/rst0
在 上 面 的 例 子 中 , 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
[中 國 Linux論 壇 man手 冊 頁 翻 譯 計 劃 ]
http://cmpp.linuxforum.net
跋
本
頁 面 中 文 版 由
中 文 man 手 冊 頁 計
劃 提 供 。
中 文 man 手 冊 頁 計
劃 :
https://github.com/man-pages-zh/manpages-zh