
54.gzipコマンドで圧縮しよう
ナックス「さて、前回はファイルをひとまとめにしてみたりしましたが、今回はそいつを圧縮します」
デビー君「圧縮って?」
ナックス「ファイルのサイズを小さくするのです」
デビー君「うーん。っていうか、まぁLinuxの勉強をしてると、『圧縮』っていう言葉はよく聞くけど、具体的にどうやってデータを壊す事なしにファイルサイズを小さくしてるんだろう?」
ナックス「そうですね。簡単に説明してみましょう。例えばファイルは見た感じ、普通のファイルですが、コンピュータ内部では、普通の画像ファイルも『0001111001111000』みたいなデータで保持しています」
デビー君「おー。0と1の世界だね」
ナックス「でも、これってよく見ると0が連続している箇所とか1が連続している箇所があるでしょ?」
デビー君「うん」
ナックス「そこで、圧縮を考えた人は『こうやってデータを保持すればいいんじゃない?』と考えました。『3041204130』」
デビー君「え?なんでこんな数字になるの?」
ナックス「これは『3つの0。4つの1。2つの0。4つの1。3つの0』っていう意味を、そのまま数字だけで書いたものです」
デビー君「おーっ!!なるほど!確かに最初のはデータのサイズが16文字だったのに、10文字までに減ったね!!これなら元のデータに戻すことも出来るし!」
ナックス「そうです。でも、これは、圧縮の原理の説明を、めっちゃ単純化した一例なので、正確なものではないかもしれません……。まぁ、圧縮ってこんな感じなんだなー、ってことが分かっていただければと思います」
ナックス「というわけで、gzipコマンド。使い方はこんな感じ」
- gzコマンド
- 使用例
- $ gzip ファイル
- 意味
- ファイルを圧縮する
- 使用例
- $ gzip -d ファイル
- 意味
- ファイルを解凍する(圧縮を元に戻す)
ナックス「で、gzipで圧縮したファイルにはgzっていう拡張子がつきます」
ナックス「というわけで、前回説明したtarファイルを圧縮するにはこんな感じ」
$ gzip peace.tar
ナックス「上記コマンドを実行したあと、lsコマンドで確認してみると以下のような圧縮ファイルが作成されてるのが見れます」
$ ls peace.tar.gz
デビー君「おおっ!!なにかとよく見るtar.gzファイル!!」
ナックス「そうです!なにかとよく見るtar.gzファイルです!」
ナックス「でもって、圧縮を元に戻すのはこんな感じ」
$ gzip -d peace.tar.gz
ナックス「lsコマンドで確認すれば、圧縮が解かれたpeace.tarファイルが確認できます」
$ ls peace.tar
デビー君「なるほどねー」
ナックス「ただ、圧縮ファイルって基本、tar.gzが多いです。tarだけされてるファイルとか、gzだけされてるファイルとかあんまり見ないでしょ?」
デビー君「うん。今回の例もtar.gzだしね」
ナックス「と言うわけで、いちいちtarコマンドをやったあとにgzipコマンドをやる、なんてことをしなくて、tarコマンドのオプションだけで、tar.gzファイルの作成/解凍が出来るようになっています」
- tarコマンド
- 使用例
- $ tar cfvz peace.tar.gz *txt
- 意味
- ファイル名の最後にtxtがつく全てのファイルをtar形式アーカイブにし、gzipで圧縮する。
- 使用例
- $ tar xfvz peace.tar.gz
- 意味
- tar + gzipされたアーカイブを解答・展開する
ナックス「zオプションがアーカイブをgzip形式で圧縮/解凍の意味です」
デビー君「なるほどねー」
ナックス「圧縮や解凍のコマンドはLinuxでも他にbzip2圧縮やzip圧縮もあります。zip圧縮なら、windowsにおいても(多分)展開出来るので、基本的にはここで解説したtar.gzの圧縮と、zipの圧縮について知っていればそれほど困ることは無いかと思います」
ナックス「というわけで、zipコマンドもちらっと紹介だけ」
- zipコマンド(複数のファイルをまとめてzip形式に圧縮する)
-
- 使用例
- $ zip peace.zip *txt
- 意味
- ファイル名の最後にtxtとつくファイルをzip圧縮する。
- 使用例
- $ zip -r peace.zip peace/
- 意味
- ディレクトリを圧縮。
- unzipコマンド(zip形式のアーカイブを展開する)
-
- 使用例
- $ unzip peace.zip
- 意味
- peace.zipファイルを展開する。
ナックス「ちなみに、zipコマンドとunzipコマンドは場合によっては最初からインストールされているわけではないかもしれません。使いたいときはaptitudeコマンドなりapt-getコマンドなりyumコマンドなり、Synapticなり、好きな方法でzipコマンドとunzipコマンドをインストールしてください」
ナックス「というわけで、圧縮コマンドの解説は今回で終了します」
デビー君「じゃあ、次回は?」
ナックス「次回は『特に使いどころ無いけどコマンドからCDトレイを開いてみる(55.LinuxのコマンドからCDトレイを開く)』!!」