Linuxのtar.gzはzipの事?Linuxの圧縮と解凍について。

こんにちは!
サイト管理人のYosukeです。

 

Linuxといえば、コマンドライン操作というイメージが強いんですが、Windows歴が長いと、

それが非常に難しく感じ、かつ面倒くさい印象がなかなか払拭出来ません。

でも、少しづつですが、コマンドラインならではの利点も垣間見えてきた、そんな今日この頃です。

 

今日は、最近まで意味がわからなかった、TAR.tar.gzについて、書こうと思います。

 

TAR(ター)とは?

複数のフォルダやファイルをひとまとめにするためのファイル形式です。

 

圧縮はしませんが、属性やファイル情報などをそのまま保持したり出来ます。

 

俗に、複数のものを丸めるイメージからターボールと言われているようです。

 

本当は違う意味があるそうですが、認識としてはまぁいいんじゃないかと思います。

 

こうやって作ったファイルの拡張子は、.tarになります。

 

.tar.gzは圧縮ファイル

先ほどのターボールは圧縮されていない1つのファイルでした。

 

保存したり、インターネットで配布する時は、なるべくデータサイズを小さく(圧縮)したいですよね。

 

それを、gzipというコマンド(gunzip)を使って圧縮をおこないます。

 

これで作ったファイルの拡張子は.gz になります。

 

[ファイル名].tar を圧縮するので、[ファイル名].tar.gz になります。

 

tarでまとめず最初からgzipで圧縮かければいいのにね

Windowsユーザーの自分が思った疑問です。同じような疑問にぶつかる人多いんじゃないかな。

 

gzipには、複数のファイルを圧縮して1つのファイルにしたり、フォルダごと圧縮することは出来ません。

 

なので、まず事前にTARでまとめる必要があるのです。

 

いっぽう、Windowsでもおなじみ、zip形式は複数のファイル(フォルダ)をまとめつつ圧縮できますよね。

zip形式で圧縮したり解凍したりする事は、zip(unzip) というコマンドで可能なのですが、

こちらは追加インストールしないと使えない場合があり、LinuxやUnixに最初から必ず使える

.tar.gzで圧縮・解凍する方を慣例として使われているみたい。

 

TAR(GNU版)は高性能で圧縮も解凍もできます。

ごめんなさい、、ここまで書いてきた事が半分嘘みたいな話になってしまいますが、

Linuxに入っているTARはGNU版で、圧縮・解凍する機能(Lempel-Zivコーディング)が実装されています。

 

何を言いたいかというと、tarコマンドで、圧縮・解凍する事が出来ます。

つまり、.tar.gzに圧縮したり、解凍したりする事は、実はtarコマンドだけでも出来るようになっています。

 

なので、tarコマンドとgzipコマンドをそれぞれ実行する必要はなく、tarコマンドだけ知っておけばいいのですね。

 

.tar.gz 圧縮・展開のマンドの実例

tar [オプション] [ファイル名.tar.gz] [フォルダ名 ファイル名]

 

解凍する (x オプション)

ホームディレクトリにある、Sample.tar.gz解凍する

$ tar xvzf ~/Sample.tar.gz

ホームディレクトリにある、Sample.tar.gz の中の、Sample.txtだけを解凍する

$ tar xvzf ~/Sample.tar.gz Sample.txt

 

圧縮する (c オプション)

ホームディレクトリにある、Sample.txt Sample.jpg Sample.mp3圧縮して、Sample.tar.gz にする

$ tar cvzf ~/Sample.tar.gz Sample.txt Sample.jpg Sample.mp3

 

オプションなど、勉強させていただいたサイト

You may also like

Leave a comment