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

gunzipコマンドの使い方徹底解説!主要オプションと実行例まとめ

フォルダを整理していて「.gz」という拡張子が付いたファイルを見かけたことはありませんか?それはgzipコマンドで圧縮されたファイルです。gzipはLempel-Ziv(LZ77)圧縮アルゴリズムを使用し、ドキュメント、画像、音声ファイルなどのサイズを効率的に縮小します。gzipで圧縮したファイルを実際に利用するには、展開(解凍)作業が必要になります。この記事では、gzipコマンドで圧縮されたファイルを展開するさまざまな方法を、具体例とともにわかりやすく解説します。

gzipコマンドでファイルを展開する

gzipコマンド自体にも、.gz拡張子のファイルを展開する機能が備わっています。

ファイルを展開するには、-dオプションを次のように指定します。

gzip -d myfilename.gz

これによりファイルが展開され、.gz拡張子が自動的に削除されます。

gunzipコマンドの使い方徹底解説!主要オプションと実行例まとめ

gunzipコマンドでファイルを展開する

gzipコマンドに-dオプションを付ける方法でも問題ありませんが、ファイルを展開するときは専用のgunzipコマンドを使った方が直感的で覚えやすいでしょう。以下のように実行します。

gunzip myfilename.gz
gunzipコマンドの使い方徹底解説!主要オプションと実行例まとめ

ファイルを強制的に展開する(-f)

gunzipコマンドがファイルの展開を拒否することがあります。よくある原因のひとつは、展開後に生成されるファイル名が、すでに存在するファイルと同じであるケースです。

例えば、document1.doc.gzというファイルがあり、同じフォルダ内にdocument1.docというファイルも存在しているとします。この状態で次のコマンドを実行すると、「ファイルが既に存在します」というメッセージが表示され、上書きの確認を求められます。

gunzip document1.doc.gz

Yを入力すれば、既存ファイルが上書きされて処理が続行されます。しかし、シェルスクリプトの中でgunzipを実行する場合は、確認メッセージが表示されるとスクリプトが停止して入力待ちになってしまうため、都合が悪いことがあります。

そのような場合は、-fオプションを使って強制的に展開できます。

gunzip -f document1.doc.gz
gunzipコマンドの使い方徹底解説!主要オプションと実行例まとめ

このオプションを付けると、同名の既存ファイルを確認なしで上書きします。意図しないデータ損失を避けるため、-fオプションは慎重に使用してください。

圧縮ファイルと展開ファイルの両方を残す方法(-k)

デフォルトでは、gunzipコマンドでファイルを展開すると、元の.gzファイルは削除されます。つまりmyfile.gzはmyfileという名前になり、フルサイズに展開されるのです。

展開しながら、圧縮ファイルのコピーも残しておきたい場合は、次のコマンドを実行します。

gunzip -k myfile.gz

これでmyfileとmyfile.gzの両方が残ります。

gunzipコマンドの使い方徹底解説!主要オプションと実行例まとめ

展開せずに内容を表示する(-c)

圧縮されたファイルがテキストファイルであれば、事前に展開しなくても内容を確認できます。次のコマンドを使用します。

gunzip -c myfile.gz

このコマンドは、myfile.gzの中身をターミナルに出力します。

圧縮ファイルの情報を表示する(-l)

gunzipコマンドに-lオプションを付けると、圧縮ファイルの詳細情報を取得できます。

gunzip -l myfile.gz
gunzipコマンドの使い方徹底解説!主要オプションと実行例まとめ

このコマンドの出力には、次の情報が含まれます。

  • 圧縮時のサイズ
  • 展開後のサイズ
  • 圧縮率
  • 展開後のファイル名

このコマンドが特に役立つのは、大きなファイルを扱う場合やディスクの空き容量が少ない状況です。

例えば、10GBのドライブに8GBの圧縮ファイルがあるとします。何も確認せずにgunzipを実行すると、展開後のサイズが15GBだったためにコマンドが失敗する可能性があります。

-lオプションを付けて実行すれば、展開先のディスクに十分な空き容量があるかを事前にチェックできます。また、展開時に作成されるファイル名も確認できるので安心です。

フォルダ内のファイルを再帰的に一括展開する(-r)

あるフォルダ内のすべてのファイルと、その下層にあるすべてのサブフォルダ内のファイルをまとめて展開したい場合は、次のコマンドを使用します。

gunzip -r foldername
gunzipコマンドの使い方徹底解説!主要オプションと実行例まとめ

例えば、次のようなフォルダ構成とファイルがあるとします。

  • Documents
    • mydoc.gz
    • mydoc1.gz
    • Accounts
      • spreadsheet1.gz
      • spreadsheet2.gz

次のコマンドを1回実行するだけで、すべてのファイルを一括展開できます。

gunzip -r Documents

圧縮ファイルが有効かテストする(-t)

ファイルがgzipで正しく圧縮されているかどうかを検証するには、次のコマンドを実行します。

gunzip -t filename.gz

ファイルが破損しているなどの理由で無効な場合はエラーメッセージが表示されます。問題がなければ、メッセージは表示されずにプロンプトへ戻ります。

展開時の詳細情報を表示する(-v)

デフォルトでは、gunzipコマンドを実行すると、.gz拡張子が取り除かれた展開済みファイルだけが残り、処理の詳細は表示されません。

より詳しい情報を確認したい場合は、-v(verbose)オプションを使用します。

gunzip -v filename.gz

出力は次のようになります。

filename.gz: 20% -- replaced with filename

この出力から、元の圧縮ファイル名、圧縮率、そして展開後の最終的なファイル名を確認できます。

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

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

  2. 「コマンドをプログラムに送信中に問題が発生しました」エラーの解決方法【8つの対処法】

    Microsoft ExcelなどのOfficeファイルを開こうとした際に「コマンドをプログラムに送信中に問題が発生しました」というエラーメッセージが表示される場合、WindowsがMicrosoft Officeアプリケーションと正常に接続できていないことを意味します。エラーメッセージで「OK」をクリックして再度ファイルを開くと、問題なく開けるケースもありますが、PCを再起動すると再び同じエラーが表示されてしまいます。 Word文書やExcelスプレッドシートなどのMicrosoft Officeファイルを開こうとすると、以下のようなエラーメッセージが表示されることがあります。 コマンドを