圧縮・解凍・アーカイブ
データの圧縮と解凍
ファイルを送ったり保管したりする時にはデータサイズを小さくすると効率的である。ファイルのデータサイズを小さくすることを圧縮という。
UNIXでよく使われる圧縮には、主に以下の3種類がある: gzip, zip, bzip2
- gzip(ジージップ)は、もっとも一般的である。拡張子:.gz
- zip(ジップ)はgzipの前身であり、windowsでもよく使われる。拡張子:.zip
- bzip2(ビージップツー)は、gzipより処理時間がかかるが、そのぶん圧縮率が高いことが多い。拡張子:.bz2
それぞれの圧縮の仕方(コマンド)は、
$ gzip filename $ bzip2 filename $ zip filename.zip filename $ zip -r directory_name.zip directory_name
である。
それぞれの解凍の仕方(コマンド)は、
$ gunzip filename.gz $ unzip filename.zip $ bunzip2 filename.bz2
である。
問1: testdata.gz←このファイルをダウンロードして、解凍してみよ。解凍前後でファイルサイズはどう変化するか? (なお、このデータは、岐阜県高山サイトで観測された、樹木の葉の光学特性のデータである)
問2: 前問で解凍したファイルを、bzip2で圧縮してみよ。gzipに較べて圧縮後のファイルはどのくらいちいさくなるか?
アーカイブ
ひとつのデータも、たくさんのファイルから構成されることがある。例えば人工衛星の画像は、同じ日時・同じ場所を撮影したデータでも、チャンネル(波長帯)ごとに違ったファイルにデータが格納されていることがよくある。そのような場合でも、データを転送したり保管したりするときには、ひとつのファイルとしてまとまっているほうが扱いやすい。そこで、複数のファイルをひとつのファイルに連結してしまうことがよくある。これを「アーカイブ」という。
アーカイブの最も一般的な方法は"tar archive"(ターアーカイブ)である。tarアーカイブで作られたファイルの拡張子は.tarである。
tarアーカイブの作り方(コマンド):
$ tar cvf filename.tar file1 file2 file3 .... または、 $ tar cvf filename.tar directory
tarアーカイブの展開のやり方(コマンド):
$ tar xvf filename.tar
注: tarでアーカイブし、gzipで圧縮する、というのがUNIXにおけるデータ管理の一般的な流儀であり、その場合、ファイルは.tar.gzを拡張子に持つことになる。このようなファイルを"tar ball"と呼ぶ。tar ballの解凍・展開は、tar zxvfというコマンドを使えば、gunzipとtar xvfの両方の機能を1つのコマンドでまとめて実行できる。
<Unix/Linux入門に戻る>
Keyword(s):
References:[Unix/Linux入門] [2018_実用解析]