Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxのgzipコマンドの使い方と実用例まとめ

gzipコマンドとは

gzipコマンドは、Linux環境でファイルを圧縮する際に最も広く使われている標準的なコマンドの一つです。

デフォルト設定では、gzipコマンドでファイルやフォルダを圧縮すると、元のファイル名に拡張子.gzが付いた名前のファイルが生成されます。

以下のスクリーンショットはUbuntuでの操作例ですが、gzipコマンドは他のUnix系OSでも同様に動作します。

gzipコマンドでファイルを圧縮する方法

単一のファイルをgzipで圧縮する最もシンプルな方法は、次のコマンドを実行することです。

gzip ファイル名

例えば、mydocument.odtというファイルを圧縮するには、以下のコマンドを実行します。

gzip mydocument.odt

ファイル名にスペースが含まれている場合は、ダブルクォートで囲みます。

gzip "this is my file.png"

なお、ファイルの種類によって圧縮効率は大きく異なります。ドキュメント、テキストファイル、ビットマップ画像、WAVやMPEGなどの音声・動画形式は非常に高い圧縮率が得られます。一方、JPEG画像やMP3音声ファイルなどはほとんど圧縮できず、場合によってはgzip実行後にファイルサイズが逆に大きくなることもあります。

JPEG画像やMP3音声ファイルはすでに圧縮済みの形式であるため、gzipコマンドをかけてもさらに圧縮されることはなく、むしろデータが上乗せされてしまうのです。

また、gzipコマンドが圧縮を試みるのは、通常のファイルとフォルダのみです。

gzipコマンドでファイルを解凍(展開)する方法

gzipアーカイブを解凍するには、次のコマンドを使用します。

gzip -d ファイル名.gz

例えば、mydocument.odt.gzを解凍する場合は、以下のように実行します。

gzip -d mydocument.odt.gz

強制的に圧縮を実行する方法

まれに、通常の方法では圧縮できないファイルがあります。そのような場合でも、-fオプションを付けると、gzipコマンドに強制的に圧縮させることができます。

gzip -f ファイル名

元のファイルを残したまま圧縮する方法

デフォルトでは、gzipコマンドでファイルを圧縮すると、拡張子.gzの付いた新しいファイルだけが残り、元のファイルは削除されます。元のファイルを保持したまま圧縮したい場合は、-kオプションを指定します。

gzip -k ファイル名

例えば、次のコマンドを実行すると、mydocument.odtmydocument.odt.gzの両方のファイルが残ります。

gzip -k mydocument.odt

圧縮による容量削減効果を統計で確認する

ファイルを圧縮する主な目的は、ディスク容量の節約や、ネットワーク送信前のファイルサイズの削減です。gzipコマンドでは、圧縮パフォーマンスを確認するための統計情報を取得できます。

統計情報の一覧を表示するには、次のコマンドを実行します。

gzip -l ファイル名.gz

このオプションは小文字の「L(エル)」であり、「1」や大文字の「I」ではない点に注意してください。

上記のコマンドで表示される情報は以下の通りです。

  • 圧縮後のサイズ
  • 圧縮前のサイズ
  • 圧縮率(パーセント)
  • 圧縮前のファイル名

フォルダ内およびサブフォルダ内の全ファイルを圧縮する

フォルダとそのサブフォルダ内のすべてのファイルを圧縮するには、次のコマンドを使用します。

gzip -r フォルダ名

この処理では、フォルダ名.gzのような単一のアーカイブファイルは作成されません。代わりに、ディレクトリ構造を再帰的にたどり、その中の各ファイルを個別に圧縮していきます。

フォルダ全体を1つのファイルとして圧縮したい場合は、まずtarファイルを作成し、そのtarファイルをgzipで圧縮するのがおすすめです。

複数のgzファイルをまとめて解凍するには、次のコマンドを使います。

gzip -d *.gz

圧縮ファイルの整合性をテストする方法

圧縮ファイルが破損しておらず有効であることを検証するには、次のコマンドを実行します。

gzip -t ファイル名

ファイルが正常であれば、何も出力されません。

圧縮レベルを変更する方法

ファイルの圧縮方法は複数あります。例えば、処理速度を優先して低めの圧縮率にすることもできますし、実行時間はかかりますが最大限の圧縮率を得ることも可能です。

最速で最低限の圧縮を行うには、次のコマンドを実行します。

gzip -1 ファイル名

最も時間がかかる代わりに最大限の圧縮を行うには、次のコマンドを実行します。

gzip -9 ファイル名

1〜9の間で異なる数値を選ぶことで、速度と圧縮率のバランスを自由に調整できます。

標準的なzipファイルの扱いについて

標準的なzipファイルを扱う際には、gzipコマンドは使用しないでください。zipファイルの圧縮・解凍には、zipコマンドとunzipコマンドを使用します。

  1. Linuxの「echo」コマンドとは?基本構文から実用的な活用例まで徹底解説

    Linuxを始めたばかりの方でも、長年Linuxデスクトップを使い続けている方でも、一見すると意味が分かりにくいコマンドがいくつか存在します。特にコマンドラインに触れる機会が少なかった方にとってはなおさらでしょう。しかし、Linuxやその他Unix系OSの真の力は、まさにそのコマンドラインの中にこそ秘められています。 その代表格とも言えるのが、古くから親しまれてきたechoコマンドです。一見すると何の役に立つのか分かりませんが、仕組みを理解してみると、意外なほど便利なコマンドであることが分かります。 echoコマンドは何をするもの? echoのマニュアルページを見ても、詳細な説明はほとんどあ

  2. Linuxのteeコマンド使い方ガイド|画面表示とファイル保存を同時に実現

    Linuxシェルでパイプやリダイレクトを使っているなら、teeコマンドの出番もきっとあるはずです。teeは「標準出力に表示しながら、同時にファイルにも書き込む」ことができる便利なユーティリティです。この記事では、teeコマンドの基本操作から、sudoとの組み合わせ、追記モード、エラー出力の扱い方まで、実例を交えながら詳しく解説します。 teeコマンドとは何をするもの? まず、次のようなコマンドを見てみましょう。 ls このコマンドは、現在のディレクトリの内容を表示します。つまり、標準出力(stdout)へ出力するわけです。標準出力とは通常、画面、正確には仮想端末のディスプレイのことです