Zcat - Linuxコマンド - Unixコマンド

gzip、gunzip、zcat - ファイルを圧縮または展開する

シノプシス

gzip [ -acdfhlLnNrtvV19 ] [ -S suffix ] [ name ... ]
gunzip [ -acfhlLnNrtvV ] [ -S suffix ] [ name ... ]
zcat [ -fhLV ] [ name ... ]

説明

Gzipは、Lempel-Zivコーディング(LZ77)を使用して名前付きファイルのサイズを縮小します。 可能な限り、各ファイルは拡張子.gzのファイルに置き換えられ、同じ所有権モード、アクセスおよび変更時刻を維持します。 (デフォルトの拡張子はVMSの場合は-gz 、MSDOSの場合はz 、OS / 2のFAT、Windows NTのFAT、Atariです。)ファイルが指定されていない場合、またはファイル名が " - "の場合、標準入力は標準出力。 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の略語として認識します。 圧縮するとき、 gzipは拡張子.tarのファイルを切り捨てるのではなく、 .tgz拡張子を必要に応じて使います。

gunzipは現在、 gzip、zip、compress、compress -Hまたはpackで作成されたファイルを解凍できます 入力形式の検出は自動的に行われます。 最初の2つのフォーマットを使用する場合、 gunzipは32ビットのCRCをチェックします。 パックの場合、gunzipは圧縮されていない長さをチェックします。 標準の圧縮形式は一貫性チェックを可能にするようには設計されていません。 しかし、 gunzipはときどき悪い.Zファイルを検出することができます。 .Zファイルの解凍時にエラーが発生した場合は、標準の解凍が不平を言っていないため、.Zファイルが正しいと仮定しないでください。 これは一般に、標準のuncompressが入力をチェックせず、幸いなことにガベージ出力を生成することを意味します。 SCO圧縮-H形式(1zh圧縮方式)にはCRCは含まれていませんが、整合性チェックも可能です。

zipによって作成されたファイルは、 'deflation'メソッドで圧縮された単一のメンバを持つ場合にのみ、gzipによって圧縮解除できます。 この機能は、tar.zipファイルをtar.gz形式に変換する場合にのみ役立ちます。 複数のメンバーを含むzipファイルを抽出するには、 gunzipではなくunzipを使用します

zcatgunzip -cと同じです (一部のシステムでは、 zcatgzcatとしてインストールされ、元のリンクを圧縮して保存することができます) .zcatは、コマンドラインまたは標準入力のファイルのリストを解凍し、非圧縮データを標準出力に書き込みます。 zcatは、 .gz接尾辞を持っているかどうかにかかわらず、正しいマジックナンバーを持つファイルを解凍します。

Gzipは、 zipとPKZIPで使用されるLempel-Zivアルゴリズムを使用します。 取得される圧縮の量は、入力のサイズと共通部分文字列の分布に依存します。 通常、ソースコードや英語などのテキストは60〜70%削減されます。 圧縮は、一般にLZW( 圧縮で使用される )、ハフマン符号化( パックで使用される)、または適応ハフマン符号化( コンパクト )によって達成される圧縮よりもはるかに優れている。

圧縮ファイルが元のファイルよりもわずかに大きい場合でも、圧縮は常に実行されます。 最悪の場合の展開は、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オプションも指定されている場合は、そのまま入力データを標準出力にコピーします。let zcatcatとして動作します。 -fが指定されておらず、バックグラウンドで実行されていない場合、 gzipは既存のファイルを上書きするかどうかを確認するプロンプトを出します。

-h --help

ヘルプ画面を表示して終了します。

-l --list

圧縮ファイルごとに、次のフィールドを一覧表示します。


compressed size:圧縮ファイルのサイズ
uncompressed size:圧縮されていないファイルのサイズ
比率:圧縮率(不明の場合は0.0%)
uncompressed_name:圧縮されていないファイルの名前

圧縮されていないサイズは、圧縮された.Zファイルなど、gzip形式ではないファイルの場合は-1として与えられます。 そのようなファイルの圧縮されていないサイズを取得するには、以下を使用できます。


zcat file.Z | wc -c

--verboseオプションと組み合わせて、次のフィールドも表示されます。


方法:圧縮方法
crc:圧縮されていないデータの32ビットCRC
日付と時刻:圧縮されていないファイルのタイムスタンプ

現在サポートされている圧縮方法は、deflate、compress、lzh(SCO compress -H)とpackです。 crcは、gzip形式ではないファイルに対してffffffffとして与えられます。

--nameを指定すると、圧縮されていない名前、日付、時刻が圧縮ファイル内に格納されている場合はそのファイルに格納されます。

--verboseでは、いくつかのサイズが不明でない限り、すべてのファイルのサイズ合計と圧縮率も表示されます。 --quietでは、タイトルと合計行は表示されません。

-L --license

gzipライセンスを表示して終了します。

-n --no-name

圧縮するときは、デフォルトで元のファイル名とタイムスタンプを保存しないでください。 (元の名前は、名前を切り捨てる必要がある場合は常に保存されます)。解凍するときは、元のファイル名がある場合は復元しないでください(圧縮されたファイル名からgzipサフィックスのみを削除します) (圧縮ファイルからコピーします)。 このオプションは、解凍するときのデフォルトです。

-N --name

圧縮するときは、元のファイル名とタイムスタンプを必ず保存してください。 これがデフォルトです。 解凍するときは、元のファイル名とタイムスタンプがあればそれを復元します。 このオプションは、ファイル名の長さに制限があるシステム、またはファイル転送後にタイムスタンプが失われた場合に便利です。

-q --quiet

すべての警告を抑制する。

-r - 再帰的

ディレクトリ構造を再帰的に移動します。 コマンドラインで指定されたファイル名のいずれかがディレクトリの場合、 gzipはそのディレクトリに移動し、そこで見つかったすべてのファイルを圧縮します(またはgunzipの場合は圧縮解除します)。

-S .suf --suffix .suf

.gzの代わりに接尾辞.sufを使用します。 任意の接尾辞を付けることができますが、ファイルが他のシステムに転送されるときに混乱を避けるために、.zと.gz以外の接尾辞は避けるべきです。 ヌルの接尾辞は、次のように、gunzipに強制的に接尾辞に関係なくすべてのファイルを解凍しようとします。


gunzip -S "" *(*。* for MSDOS)

以前のバージョンのgzipは.z接尾辞を使用していました。 これはpack (1)との競合を避けるために変更されました。

-t - テスト

テスト。 圧縮ファイルの整合性を確認してください。

-v - 詳細

詳細。 圧縮または解凍された各ファイルの名前とパーセンテージの削減率を表示します。

-V --version

バージョン。 バージョン番号とコンパイルオプションを表示して終了します。

- #--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ファイルの1つのメンバーに障害が発生した場合でも、他のメンバーは回復できます(破損したメンバーが削除された場合)。 ただし、一度にすべてのメンバーを圧縮することで、より良い圧縮を得ることができます。


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はgzipを透過的に起動する-zオプションをサポートしています。 gzipはtarを補完するものとして設計されたものであり、代わりに使われるものではありません。

関連項目

圧縮 (1)

gzipファイルフォーマットは、P. Deutsch、GZIPファイルフォーマット仕様バージョン4.3、 、インターネットRFC1952 (May 1996)に規定されている。 ジップデフレーションフォーマットはP. Deutsch、DEFLATE圧縮データフォーマット仕様バージョン1.3、インターネットRFC 1951(1996年5月)に規定されている。

重要: manコマンド( %man )を使用して、特定のコンピュータでコマンドがどのように使用されているかを確認してください。