このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:ファイルを圧縮する:gzipコマンド

ファイルを圧縮する:gzipコマンド
ファイルの圧縮と展開は、システム管理やデータのバックアップにおいて重要な操作です。gzip
コマンドは、ファイルを効率的に圧縮・展開するためのLinux系システムで広く使われているツールです。ここでは、gzip
コマンドの基本的な使い方やオプションについて、具体的な例とともに解説します。

gzipコマンドとは
- 目的:ファイルを圧縮・展開する。
- 拡張子:圧縮されたファイルには慣習的に
.gz
が付けられる。 - 特徴:
・歴史が古く、互換性が高い。
・高速に動作する。
・現在でも幅広く使用されている。
gzipコマンドの基本的な使い方
ファイルを圧縮する
【書式】ファイルを圧縮するgzip <圧縮元ファイル>
ステップ1:ダミーファイルの作成
例:100MBのダミーファイルを作成し、それをgzip
で圧縮します。
user01@ubuntu:~$ dd if=/dev/zero of=dummyfile bs=1M count=100
説明
dd
コマンドを使用して、/dev/zero
から100MBのゼロフィルされたファイルを作成。if=/dev/zero
:入力ファイルを/dev/zero
に指定。of=dummyfile
:出力ファイルをdummyfile
に指定。bs=1M
:ブロックサイズを1MBに設定。count=100
:100個のブロックを作成。
実行結果
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0557598 s, 1.9 GB/s
ステップ2:ファイルの確認
dummyfile
が100MBのサイズで作成されていることを確認。
user01@ubuntu:~$ ls -l
出力例
合計 102444
drwxrwxr-x 2 user01 user01 4096 11月 24 15:59 bin
-rw-rw-r-- 1 user01 user01 104857600 12月 1 22:29 dummyfile
...(以下省略)...
ステップ3:gzipでファイルを圧縮
user01@ubuntu:~$ gzip dummyfile
実行後のファイル一覧
user01@ubuntu:~$ ls -l
出力例
合計 144
drwxrwxr-x 2 user01 user01 4096 11月 24 15:59 bin
-rw-rw-r-- 1 user01 user01 101801 12月 1 22:29 dummyfile.gz
...(以下省略)...
結果
dummyfile
がdummyfile.gz
に圧縮された。- ファイルサイズが約100MBから約100KBに大幅に縮小。
注意点
gzip
コマンドを実行すると、元のファイルは削除され、圧縮ファイルのみが残ります。- 圧縮ファイル名は、元のファイル名に
.gz
を付加したものになります。
ファイルを展開する
【書式】gzip -d <圧縮ファイル>
またはgunzip <圧縮ファイル>
ステップ1:gzipコマンドで展開
user01@ubuntu:~$ gzip -d dummyfile.gz
実行後のファイル一覧
user01@ubuntu:~$ ls -l
出力例
合計 102444
drwxrwxr-x 2 user01 user01 4096 11月 24 15:59 bin
-rw-rw-r-- 1 user01 user01 104857600 12月 1 22:29 dummyfile
...(以下省略)...
結果
dummyfile.gz
が展開され、dummyfile
が復元された。- 圧縮ファイル(
.gz
ファイル)は削除されます。
ステップ2:gunzipコマンドで展開
gunzip
コマンドは、gzip -d
と同等の動作をします。
user01@ubuntu:~$ gzip dummyfile
user01@ubuntu:~$ gunzip dummyfile.gz
gunzipコマンドの内部構造
gunzip
は実はシェルスクリプトであり、内部でgzip -d
を実行しています。
確認方法
user01@ubuntu:~$ less $(which gunzip)
出力例(抜粋)
#!/bin/sh
# Uncompress files. This is the inverse of gzip.
...
version="gunzip (gzip) 1.12
/usr/bin/gunzip
説明
less
コマンドでgunzip
のソースコードを閲覧できます。which gunzip
でgunzip
コマンドのパスを取得。
標準出力にgzipファイルを出力する
-c
オプションを使用すると、圧縮データを標準出力に出力できます。
【書式】gzip -c <圧縮元ファイル> > <出力ファイル名>
例:任意のファイル名で圧縮ファイルを作成
user01@ubuntu:~$ gzip -c dummyfile > gzip_test.gz
結果
dummyfile
を圧縮し、gzip_test.gz
という名前で保存。
実行後のファイル一覧
user01@ubuntu:~$ ls -l
出力例
合計 102544
drwxrwxr-x 2 user01 user01 4096 11月 24 15:59 bin
-rw-rw-r-- 1 user01 user01 104857600 12月 1 22:29 dummyfile
-rw-rw-r-- 1 user01 user01 101801 12月 1 23:04 gzip_test.gz
...(以下省略)...
注意点
gzip -c
の出力はバイナリデータであり、ターミナルに直接表示すると文字化けします。- 必ずリダイレクトやパイプを使用して出力を処理してください。
gzipコマンドの主なオプション一覧
オプション | 説明 |
---|---|
-d | ファイルを展開する(--decompress と同等) |
-c | 標準出力に出力する |
-k | 圧縮後も元のファイルを保持する |
-l | 圧縮ファイルの情報を表示 |
-v | 詳細な情報を表示する |
-1 〜-9 | 圧縮レベルを指定する(-1 が高速、-9 が高圧縮) |
ここで作成したファイルの削除
テストで作成したファイルを削除して、ディスクスペースを解放します。
user01@ubuntu:~$ rm dummyfile gzip_test.gz
まとめ
gzip
コマンドは、簡単にファイルを圧縮・展開できる便利なツールです。- 基本操作:
・圧縮:gzip <ファイル名>
・展開:gzip -d <圧縮ファイル>
またはgunzip <圧縮ファイル>
- ポイント:
・圧縮・展開時には元のファイルが削除されるため、必要に応じてバックアップを取るか、-k
オプションを使用して元のファイルを保持してください。
・-c
オプションを使用すると、標準出力に圧縮データを出力でき、リダイレクトで任意のファイル名で保存可能です。 - 応用:
・スクリプト内での圧縮処理や、パイプライン処理での活用など、さまざまな場面で利用できます。
gzip
コマンドをマスターすることで、効率的なファイル管理が可能になります。ぜひ活用してみてください。