アーカイブとは
アーカイブ (Archive) とは、本来は記録を保管しておく場所や、書庫を示す単語ですが、コンピュータ関連での用語としては、複数のファイルを一つのファイルにまとめる方法、もしくはそうしてまとめられたファイルを指します。
また、まとめられたファイルをアーカイブファイルと呼ぶこともあります。
アーカイブ形式の種類
複数のファイルを一つにまとめる方法には、いくつか種類があります。つまり、アーカイブとして作成されたアーカイブファイルの形式にはいくつか種類があります。主な形式を以下に挙げます。
- compress 形式
- gzip 形式
- bzip2 形式
- tar 形式
- shar 形式
- uuencode 形式
- bese64(MIME) 形式
UNIX 系システムの世界では、圧縮するために compress 形式や gzip 形式、
もしくは bzip2 形式が使われることが多いです。
また複数のファイルをまとめるためには tar 形式がよく使われています。
NetNews (usenet) などに投稿することによってソースファイルが配布される際には shar 形式や uuencode 形式が良く使われています。
最近では base64 で投稿されてることも多くなったようです。
上記以外にも lzh 形式、arc 形式、zoo 形式、zip 形式、arh 形式、ish 形式、
BinHex(hqx) 形式、sit 形式、pack 形式、compact 形式など様々な形式がありますが、最近では UNIX システム用ソースファイルの配布の際に使われることはほとんどなくなりました。
取得したファイルがどの形式になっているかは、たいていファイル名のサフィックス (suffix) で判断ができます。
ここでは、それぞれの形式に合わせた展開方法 (*1) を、簡単なコマンドの使い方と共に解説します。
(*1) 解凍方法という言い方もあるようです。
compress 形式
ファイル名の suffix が .Z になっているファイルです。以前に較べると比較的少なくなってきましたが、ファイルの圧縮には良く使われていた形式です。展開には uncompress コマンドや zcat コマンドを使用します。
以下の方法で展開します。
$ uncompress file.Z
この場合は file.Z という名前のファイルはなくなり、
代りに展開された file という名前のファイルが作成されます。
オプション -c を与えることで結果を標準出力に出すことができます。
$ uncompress -c file.Z
コマンド zcat は uncompress -c と同じ動作をします。
つまり以下の実行例は、展開した結果を標準出力に出します。
$ zcat file.Z
gzip 形式
ファイル名の suffix が .gz になっているファイルです。
compress 形式に較べて圧縮効率が良いので最近はこの形式が多いです。
展開には gunzip コマンドか、もしくは gzip に付属の zcat コマンドを使用します。
gzip にオプション -d を与えることで展開することも可能です。
gunzip コマンドを使用する場合は以下の方法で展開します。
$ gunzip file.gz
この場合は file.gz という名前のファイルはなくなり、
代りに展開された file という名前のファイルが作成されます。
gzip -d は gunzip コマンドと同じ動作をします。
したがって以下の方法でもファイルを展開できます。
$ gzip -d file.gz
gunzip コマンドは、オプション -c を与えることで結果を標準出力に出すことができます。
$ gunzip -c file.gz
これは gzip コマンドでも同様です。
$ gzip -dc file.gz
gzip 付属の zcat コマンドであれば、以下の方法で展開でき、その結果を標準出力に出すことができます。
$ zcat file.gz
bzip2 形式
ファイル名の suffix が .bz2 になっているファイルです。
gzip に較べると圧縮効率が良いので最近はこの形式も増えてきました。
展開には bunzip2 コマンドを使用します。
bzip2 コマンドにオプション -d を与えることで展開することも可能です。
bunzip2 コマンドを使用する場合は以下の方法で展開します。
$ bunzip2 file.bz2
この場合は file.bz2 という名前のファイルはなくなり、代りに展開された file という名前のファイルが作成されます。
bzip2 -d は bunzip2 コマンドと同じ動作をします。したがって以下の方法でもファイルを展開できます。
$ bzip2 -d file.bz2
bunzip2 コマンドは、オプション -c を与えることで結果を標準出力に出すことができます。
$ bunzip2 -c file.bz2
これは bzip2 コマンドでも同様です。
$ bzip2 -dc file.bz2
tar 形式
ファイル名の suffix が .tar になっているファイルです。複数のファイルをまとめるために良く使われています。展開には tar を使用します。
コマンド tar は、UNIX 系システムでは標準でインストールされていると思います。また GNU Tar のようなフリーソフトもあります。
tar コマンドの基本的な使い方として、アーカイブを展開する際によく使用する主なオプションを以下に挙げます。
- f
- アーカイブ名を指定
- t
- ファイル一覧表示
- v
- より詳細な情報表示
- x
- ファイルの取り出し
tar 形式のファイルは、以下の方法で展開します。
$ tar xf file.tar
この例ではエラーがない限り何も表示されることなく展開されます。より詳細な情報を表示したい場合は v を指定します。
$ tar xvf file.tar
事前にアーカイブの中のファイルを知りたい場合は x の代わりに t を使用します。
$ tar tf file.tar
より詳細な情報を表示したい場合は v も指定して実行します。
$ tar tvf file.tar
この形式は compress や gzip そして bzip2 と組み合わせて良く使用されています。
shar 形式
ファイル名の suffix が .shar もしくは .sh になっているファイルです。
NetNews や Mail でファイルを送る場合に良く使用されています。
展開には unshar コマンドを使用します。
以下の方法で展開します。
$ unshar file.shar
この形式は、内容を見ると判ると思いますが、シェルスクリプトになっています。
したがって #! /bin/sh と記述されている箇所より上の部分を削除し、
その後に以下の方法で展開することが可能です。
$ /bin/sh file.shar
uuencode 形式
ファイル名の suffix が .uu もしくは .uue になっているファイルです。
その内容は以下のようになっています。
begin 600 filename
M0')E;0T*0')E;2!-4T1/4R!T97-T(&1R:79E<B!F;W(@8GII<#(-"D!R96T-
M"G1Y<&4@=V]R9',Q#0HN7&)Z:7`R("TQ(#P@<V%M<&QE,2YR968@/B!S86UP
M;&4Q+G)B>@T*+EQB>FEP,B`M,B`\('-A;7!L93(N<F5F(#X@<V%M<&QE,BYR
...
`
end
この形式は、shar 形式同様、NetNews や E-Mail でファイルを送る場合に良く使用されています。展開には uudecode コマンドを使用します。
以下の方法で展開します。
$ uudecode file.uu
分割されたファイルの場合、事前に一つのファイルにまとめておく必要がありますことに注意してください。
また、展開の際には、当然ながら NetNews や E-Mail のヘッダなどは取り除く必要があります。
以前 fj.sources に、これらの作業を自動的に行なってくれる uudx というソフトウェアが投稿されました。
混合形式
ソフトウェアのソースファイルの配布には、複数の形式を用いた、
いわゆる混合形式が多く使われています。
例えばファイル名の suffix が .tar.gz になっていれば、
それは tar 形式と gzip 形式の複数の形式を用いているファイルです。
この場合は先に gunzip コマンドを使用し、次に tar コマンドを使用して展開します。
$ gunzip file.tar.gz $ tar xvf file.tar
上記のことは、以下のようにして一行で展開することもできます。
$ gzip -dc file.tar.gz | tar xvf -
また、GNU tar であればオプション z を使用して、以下のように実行することで展開できます。
$ gtar xvfz file.tar.gz
この tar 形式と gzip 形式の混合形式は、ファイルによっては suffix が .tgz や .taz になっている場合もあります。しかしその場合でも上記の手段で展開することができます。