gzipコマンドの使い方

gzipコマンドの使い方

Posted at June 1,2012 11:55 PM
Tag:[gzip, Linux]

Linuxコマンド「gzip」の使い方を紹介します。

ネットで色々調べた中では、オプション解説のバリエーションはこの記事が一番多いと思います(笑)。各オプション動作については、サーバで実行して確認しています。

1.gzipコマンドの機能

指定したファイルを圧縮・解凍します。圧縮後の拡張子は「.gz」になります。

オプションは次の通りです(「-h」そのままです。手抜きですいません)。Linuxのディストリビューションによっては異なるかもしれません。サーバはFreeBSD 7.1で確認しています。

オプション代替オプション意味
-1--fast圧縮時間が最も早い(圧縮率が最も低い)
fastest (worst) compression
-2 .. -8 圧縮レベルを指定
set compression level
-9--best圧縮率が最も高い(圧縮時間が最も遅い)
best (slowest) compression
-c--stdout
--to-stdout
標準出力し元ファイルを維持
write to stdout, keep original files
-d--decompress
--uncompress
ファイルを解凍
uncompress files
-f--force強制上書き
force overwriting & compress links
-h--helpヘルプ表示
display this help
-k--keep実行中にインプットファイルを削除しない
don't delete input files during operation
-l--listファイル情報を表示
list compressed file contents
-N--name元ファイル名とタイムスタンプを保持または復元
save or restore original file name and time stamp
-n--no-name元ファイル名とタイムスタンプを保持または復元しない
don't save original file name or time stamp
-q--quiet警告を出力しない
output no warnings
-r--recursiveディレクトリ内のファイルを再帰的に処理
recursively compress files in directories
-S .suf--suffix .suf「.gz」の代わりの拡張子を利用
use suffix .suf instead of .gz
-t--test圧縮ファイルをテスト
test compressed file
-V--versionバージョン表示
display program version
-v--verbose詳細を表示
print extra statistics

オプションの具体的な使い方は2項以降をご覧ください。

2.ファイルを圧縮する

ファイルfoo.txtを圧縮するには、次のようにします。

%gzip foo.txt

なお、gzipでファイルを圧縮すると、圧縮後に元ファイルが削除されます。削除されないようにするには4項を参照してください。

3.ファイルを解凍する

ファイルfoo.txt.gzを解凍するには、「-d」オプションをつけます。

%gzip -d foo.txt.gz

なお、ファイルを解凍すると、解凍後に圧縮ファイルが削除されます。削除されないようにするには4項を参照してください。

また、解凍ファイル名の末尾に「.gz」をつけなかった場合、「.gz」がついたファイルを探して解凍するようです。

4.元ファイルを消さずに圧縮・解凍する

次のように、gzipコマンドに「-c」オプションをつけ、リダイレクトで圧縮(または解凍)ファイル名を指定します。

圧縮の場合

%gzip -c foo.txt > foo.txt.gz

解凍の場合

%gzip -cd foo.txt.gz > foo.txt

「-c」は圧縮(または解凍)結果を標準出力するオプションで、標準出力の内容をリダイレクトすることで、元ファイルを残したままgzファイルを作成できます。

5.再帰的に圧縮・解凍する

あるディレクトリ配下にあるファイルすべてを圧縮(または解凍)したい場合は、「-r」オプションをつけ、ディレクトリ名を指定します。

%gzip -r hoge

6.圧縮率を上げる

圧縮率を上げるには「-数字」で指定します。値の範囲は「1」から「9」で、「9」にすると圧縮率が最大になります。ただし圧縮時間がかかります(=CPU使用率に影響します)。

%gzip -9 foo.txt

仕事では常に「-9」をつけてます。

7.圧縮したままファイルの内容を見る

圧縮したままファイルの内容を見るには、「-cd」オプションをつけます。これで解凍内容を標準出力します。

%gzip -cd foo.txt.gz

パイプでlessを連結すれば、スクロールができて便利です。

%gzip -cd foo.txt.gz | less

または「zcat」コマンドを利用します。

%zcat foo.txt.gz

8.強制上書きする

すでに圧縮ファイルが存在する場合に上書きしたい場合は、「-f」オプションをつけます。

%gzip -f foo.txt

このオプションをつけないでgzipを実行すると、次のように上書き確認のメッセージが表示されます。

foo.txt.gz already exists -- do you wish to overwrite (y or n)?

9.圧縮ファイルの圧縮率・サイズを表示する

圧縮ファイルの圧縮率・サイズを表示するには「-l」をつけます。

%gzip -l foo.txt.gz
  compressed uncompressed  ratio uncompressed_name
        1083         3296  67.1% foo.txt

10.詳細を表示する

圧縮・解凍の詳細を表示するには、「-v」オプションをつけます。

圧縮の場合

%gzip -v foo.txt
foo.txt:        67.1% -- replaced with foo.txt.gz

解凍の場合

%gzip -dv foo.txt.gz
foo.txt.gz:     67.1% -- replaced with foo.txt

11.圧縮ファイルをテストする

圧縮ファイルをテストするには「-t」オプションをつけます。「-v」オプションをつければ「OK」などが表示されます。

%gzip -tv foo.txt.gz
foo.txt.gz:    OK

12.拡張子を変更する

拡張子を「.gz」以外のものにしたい場合は「-S 拡張子」をつけます。例えば「.gzip」という拡張子にしたい場合は次のようにします。

%gzip -S .gzip foo.txt

独自の拡張子にした場合、を解凍する場合も「-S 拡張子」をつける必要があります。

%gzip -d -S .gzip foo.txt.gzip

または

%gzip -d -S .gzip foo.txt
関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)