gzip – ファイルを圧縮・展開するコマンド

コマンドリファレンス

gzip コマンドは、ファイルを GNU zip 形式(.gz)で圧縮または展開 するためのコマンドです。
主にログファイルやバックアップの圧縮、省スペース化のために利用されます。

構文(Syntax)

gzip [オプション] [FILE...]
gunzip [オプション] [FILE...]
zcat [FILE...]

主なオプション一覧

オプション説明使用例
(なし)指定したファイルを .gz に圧縮し、元ファイルを削除gzip file.txt
-d展開(gunzip と同等)gzip -d file.txt.gz
-k元ファイルを削除せず保持gzip -k file.txt
-c標準出力に出力(パイプ処理向け)gzip -c file.txt > file.txt.gz
-rディレクトリを再帰的に処理gzip -r logs/
-1-9圧縮率を指定(デフォルト: -6、数値が大きいほど高圧縮だが遅い)gzip -9 largefile
-l圧縮ファイルの情報を表示gzip -l file.txt.gz
-v詳細を表示gzip -v file.txt

実行例

ファイルを圧縮

gzip file.txt

出力:

file.txt → file.txt.gz

圧縮しても元ファイルを残す

gzip -k file.txt

file.txtfile.txt.gz が両方残る)

高圧縮率で圧縮

gzip -9 bigfile.iso

複数ファイルをまとめて圧縮

gzip file1.txt file2.txt

ディレクトリ内のファイルを再帰的に圧縮

gzip -r logs/

ファイルを展開(解凍)

gzip -d file.txt.gz

または gunzip コマンドで解凍できます(gzip -d と同等):

gunzip file.txt.gz

どちらも file.txt.gz が元の file.txt に展開されます(.gz ファイルは削除されます)。

圧縮ファイルを解凍せずに内容を表示

zcat file.txt.gz

圧縮ファイルの情報を確認

gzip -l file.txt.gz

出力例:

         compressed        uncompressed  ratio uncompressed_name
                123                456   73.0% file.txt

エラー例(存在しないファイルを指定)

gzip missing.txt

出力例:

gzip: missing.txt: No such file or directory

.gz / .tar.gz / .zip の違い

Linux でよく使われる圧縮形式の違いを整理します。

形式コマンド特徴複数ファイル主な用途
.gzgzip / gunzip単一ファイルを圧縮。軽量で高速✗(単体のみ)ログ圧縮、パイプ処理
.tar.gztar -czf / tar -xzftar でまとめて gzip で圧縮。Linux 標準的バックアップ、ソース配布
.zipzip / unzip複数ファイルを圧縮。クロスプラットフォームWindows 連携、ファイル配布

gzip は単体ファイルの圧縮に特化しており、ディレクトリや複数ファイルをまとめたい場合は tar と組み合わせて .tar.gz にするのが一般的です。

関連コマンド

  • gunzip : .gz ファイルを展開(gzip -d と同等)
  • zcat : .gz ファイルを展開せずに内容を表示
  • tar : 複数ファイルをまとめて .tar.gz 形式にする際によく併用
  • zip / unzip : Windows 互換の ZIP 形式を扱う
  • bzip2 : .bz2 形式の高圧縮ツール
  • xz : .xz 形式のさらに高圧縮ツール

備考

  • gzip単一ファイルのみ圧縮 するため、複数ファイルをまとめたい場合は tar と組み合わせて .tar.gz とするのが一般的です。
  • デフォルトの圧縮率(-6)は速度と圧縮効率のバランスが良い設定です。
  • テキストファイルは高圧縮率になりますが、JPEG や MP4 など既に圧縮されたファイルは効果が薄いです。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント