このページで解説している内容は、以下の 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.gzgunzipコマンドの内部構造
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コマンドをマスターすることで、効率的なファイル管理が可能になります。ぜひ活用してみてください。
