ファイル、ディレクトリの圧縮、展開

First Edition 2003.6.25
Last Updated 2004.3.6

インターネットからプログラムをダウンロードする時のファイル形式としては、*tar.gz、*tar.bz2などの 形式のファイルが非常に多くあります。
これらのファイルはアーカイブされ、圧縮されたファイルです。

Windowsなどでは、ファイルの圧縮、解凍の2つの可逆的な方法でのみファイルを扱っているように 見えますが、これらの作業の中で、ファイル、ディレクトリをひとまとめにしたり、バラバラにしたりする 動作はバックグラウンドで行われているのです。

UNIX系ではファイル、ディレクトリをまとめたりバラバラにしたりする動作と、圧縮、解凍を分けて処理しています。

以下のように定義します。

アーカイブする複数のファイル、ディレクトリをひとつのアーカイブ(書庫)ファイルとしてまとめること
展開するアーカイブされた複数のファイル、ディレクトリを元に戻すこと
圧縮するファイルのサイズをあるアルゴリズムによって小さくすること
伸張する圧縮したファイルを元に戻すこと

したがって、

アーカイブする←→展開する
圧縮する←→伸張する

となります。
  1. ファイル、ディレクトリをアーカイブする(tarコマンド)(対象Ver:全て)(03/06/25)
  2. .tarファイルを展開する(tarコマンド)(対象Ver:全て)(03/06/25)
  3. ファイル、ディレクトリを.Z形式で圧縮する(compressコマンド)(対象Ver:全て)(03/06/25)
  4. .Zファイルを伸張する(compress、uncompressコマンド)(対象Ver:全て)(03/06/25)
  5. ファイル、ディレクトリを.gz形式で圧縮する(gzipコマンド)(対象Ver:全て)(03/06/25)
  6. .gzファイルを伸張する(gzip、gunzipコマンド)(対象Ver:全て)(03/06/25)
  7. ファイルを.bz2形式で圧縮する(bzip2コマンド)(対象Ver:全て)(03/06/25)
  8. .bz2ファイルを伸張する(gzip、gunzipコマンド)(対象Ver:全て)(03/06/25)
  9. ファイルを.lzh形式で圧縮する(lhaコマンド)(対象Ver:全て)(03/06/25)
  10. .lzhファイルを解凍する(lhaコマンド)(対象Ver:全て)(03/06/25)
  11. 圧縮とアーカイブを同時に行う(tarコマンド)(対象Ver:全て)(04/03/06)
  12. 伸張と展開を同時に行う(tarコマンド)(対象Ver:全て)(03/06/25)

ファイル、ディレクトリをアーカイブする(tarコマンド)

複数のファイルやディレクトリをアーカイブして書庫ファイルを作成するには、以下のようにします。

■ファイルをアーカイブする
file1とfile2は残ったまま、新しいファイル****.tarが作成されます。
$ tar cvf ****.tar file1 file2
■ディレクトリをアーカイブする
dir1とdir2は残ったまま、新しいファイル****.tarが作成されます。
$ tar cvf ****.tar dir1 dir2
tarコマンドは元来テープへのバックアップの目的で作成されたため、今回のようにファイルにするためには "f"オプションが必要になります。

tarコマンドの主なオプションは以下のようになります。

c新しいアーカイブを作成する
tアーカイブ内容の一覧を表示する
rアーカイブの最後にファイルを追加する
xアーカイブからファイルを抽出する
fファイル名を指定する
v処理したファイルの一覧を詳しく出力する
zアーカイブをgzipにフィルターする
Zアーカイブをcompressにフィルターする
jアーカイブをbzip2にフィルターする

.tarファイルを展開する(tarコマンド)

アーカイブされたファイル、ディレクトリを展開するには以下のようにします。
展開するファイル****.tarを指定します。
$ tar xvf ****.tar

ファイル、ディレクトリを.Z形式で圧縮する(compressコマンド)

compressというコマンドを使ってファイルやディレクトリを圧縮する方法です。
compressコマンドによる圧縮はgzipコマンドやbzip2コマンドによる圧縮率より劣るので、現在では あまり使われていません。

■ファイルを圧縮する
file1とfile2の名称は、file1.Z、file2.Zになります。
$ compress -v file1 file2
■ディレクトリを圧縮する
dir1とdir2の中にあるファイルが全て圧縮され、ディレクトリ内のファイル名は、file1.Z、file2.Z・・・となります。
$ compress -rv dir1 dir2

.Zファイルを伸張する(compress、uncompressコマンド)

compressコマンドにより圧縮された***.Zファイルを伸張するには2つの方法があります。

■ファイルを伸張する
$ compress -dv file.Z
$ uncompress -v file.Z
■ディレクトリの中身を伸張する
$ compress -drv dir
$ uncompress -rv dir

ファイル、ディレクトリを.gz形式で圧縮する(gzipコマンド)

gzipというコマンドを使ってファイルやディレクトリを圧縮する方法です。
bzip2コマンドによる圧縮と同じくらい現在広く使われています。

■ファイルを圧縮する
file1とfile2の名称は、file1.gz、file2.gzになります。
$ gzip -v file1 file2
■ディレクトリを圧縮する
dir1とdir2の中にあるファイルが全て圧縮され、ディレクトリ内のファイル名は、file1.gz、file2.gz・・・となります。
$ gzip -rv dir1 dir2

.gzファイルを伸張する(gzip、gunzipコマンド)

gzipコマンドにより圧縮された***.gzファイルを伸張するには2つの方法があります。

■ファイルを伸張する
$ gzip -dv file.gz
$ gunzip -v file.gz
■ディレクトリの中身を伸張する
$ gzip -drv dir
$ gunzip -rv dir

ファイルを.bz2形式で圧縮する(bzip2コマンド)

bzip2というコマンドを使ってファイルやディレクトリを圧縮する方法です。
gzipコマンドより高い圧縮率です。
なお、compressコマンドやgzipコマンドのようにディレクトリの圧縮はできません。

■ファイルを圧縮する
file1とfile2の名称は、file1.bz2、file2.bz2になります。
$ gzip -v file1 file2

.bz2ファイルを伸張する(gzip、gunzipコマンド)

gzipコマンドにより圧縮された***.gzファイルを伸張するには2つの方法があります。

■ファイルを伸張する
$ bzip2 -dv file.bz2
$ bunzip2 -v file.bz2

ファイルを.lzh形式で圧縮する(lhaコマンド)

Windowsの世界では非常にポピュラーな圧縮、アーカイブ形式です。Linuxにも移植されており、 まったく同じように使うすることが出来ます。
tar、compress、gzip、bzip2などのコマンドとは違い、lhaコマンドは圧縮、アーカイブを同時に 行うことが出来ます。

■ファイルの圧縮ファイルを作成する
***.lzhが圧縮された後のファイルで、file1、file2が圧縮するファイルです。
$ lha -c ***.lzh file1 file2
■ディレクトリの圧縮ファイルを作成する
***.lzhが圧縮された後のファイルで、dir1、dir2が圧縮するディレクトリです。
$ lha -c ***.lzh dir1 dir2

.lzhファイルを解凍する(lhaコマンド)

****.lzhで圧縮されたファイルを解凍する方法です。
$ lha -e archive.lzh

圧縮とアーカイブを同時に行う(tarコマンド)

インターネットにアップロードされているファイルはなんらかの形で圧縮されていますが、 同時にアーカイブもされています。ほとんどがこの形式でしょう。

file1、file2、dir1、dir2はコマンドの例として複数指定しています。

■.tar.Z形式の圧縮、アーカイブファイルを作成する
$ tar cvZf ***.tar.Z file1 file2 dir1 dir2
■.tar.gz形式の圧縮、アーカイブファイルを作成する
$ tar cvzf ***.tar.gz file1 file2 dir1 dir2
■.tgz形式の圧縮、アーカイブファイルを作成する
$ tar cvzf ***.tgz file1 file2 dir1 dir2
■.tar.bz2形式の圧縮、アーカイブファイルを作成する
$ tar cvjf ***.tar.bz2 file1 file2 dir1 dir2

伸張と展開を同時に行う(tarコマンド)

■.tar.Z形式のファイルを伸張、展開する
$ tar xvZf file.tar.Z
■.tar.gz形式のファイルを伸張、展開する
$ tar xvzf file.tar.gz
■.tgz形式のファイルを伸張、展開する
$ tar xvzf file.tgz
■.tar.bz2形式のファイルを伸張、展開する
$ tar xvjf file.tar.bz2

[HOME]
since 2001.4.22