14.3. ファイルの圧縮とアーカイブ

ファイルのグループをまとめて1つのファイルにして保存すると、バックアップや 他のディレクトリへの移動、又はコンピュータ間の移動も簡単になり便利です。 さらには、ファイルを圧縮して1つのファイルにするとディスクの使用領域も少なくなり、 インターネットでのダウンロードも速くなります。

アーカイブファイル圧縮ファイルの 相違点と関係を理解することが重要になります。アーカイブファイルはファイルとディレクトリの 集まりを1つのファイルにして保存したものです。アーカイブファイルは圧縮されていません。 —これはそれぞれのファイルとディレクトリが集合して占有するのと同じスペースを占有します。 圧縮ファイルも、ファイルとディレクトリの集まりを1つのファイルにして保存したものですが、 さらに圧縮もされて、それぞれのファイルとディレクトリが集合して占有する スペースよりも少ないスペース使用で保存されています。コンピュータに充分なディスクスペースが ない場合、あまり使用しないファイルや、保存はするがもう使用しないファイルなどは圧縮することが できます。さらに、まずアーカイブファイルを作成して、ディスク使用容量を節約する為にアーカイブを 圧縮することも出来ます。

注意注意
 

アーカイブファイルは圧縮されていません。しかし圧縮ファイルはアーカイブファイルでもありえます。

14.3.1. File Rollerの使用

Red Hat Linux にはファイルとディレクトリを圧縮、解凍、及びアーカイブ化するFile Rollerというグラフィカルツールが含まれています。 File Rollerは一般的なUNIX と Linuxのファイルの 圧縮とアーカイブ化のフォーマットをサポートし、簡単なインターフェイスと 必要な場合に利用できる幅広いヘルプドキュメントを持っています。またこれはデスクトップ 環境とグラフィカルファイルマネージャに統合されているのでアーカイブファイルの 作業が楽になります。

File Rollerを開始するには、 メインメニュー => アクセサリー => File Rollerの順でクリックしていきます。または、シェルプロンプトで file-rollerとタイプしてFile Rollerをスタートすることもできます。 図14-1は実行中の File Rollerを示します。

ティップヒント
 

Nautilusなどのファイルマネージャを使用している場合、 アーカイブ展開や圧縮解凍をしたいファイルをダブルクリックすれば、File Rollerをスタートできます。データを抽出したり閲覧したりできるように フォルダの中に解凍/アーカイブ展開したファイルのあるFile Roller ブラウザウィンドウが出てきます。

図 14-1. 実行中のFile Roller

14.3.1.1. File Rollerによる解凍及びアーカイブ展開

ファイルのアーカイブ展開や圧縮解凍するには、ツールバーのOpen ボタンをクリックします。ファイルメニューが出てきて操作をしたいアーカイブを選択できる ようになります。例えば、ホームディレクトリにfoo.tar.gzというファイルを 保管している場合、このファイルを強調表示してOKをクリックします。 メインのFile Rollerブラウザウィンドウ内にフォルダとして ファイルが現れますので、そのフォルダアイコンをダブルクリックして進みます。 File Rollerは全てのディレクトリとサブディレクトリ構造を 保存していますので、アーカイブ内で特定のファイルを探す場合にも便利です。 個別のファイルでもアーカイブ全体でもExtractボタンを クリックして、展開アーカイブファイルを保存するディレクトリを選択し、OKを クリックすれば抽出することができます。

14.3.1.2. File Rollerによるアーカイブの作成

ハードドライブの領域を開放したり、複数のファイルやディレクトリを 他のユーザーに送りたい場合は、File Rollerが ファイルとディレクトリのアーカイブを作成してくれます。新規のアーカイブを 作成するには、ツールバーのNewをクリックします。 ファイルブラウザが出てきてアーカイブ名と圧縮法を指定します。例えば ドロップダウンメニューから、gzip圧縮のTar(tar.gz) 形式を選択して作成したいアーカイブファイルの名前を入力します。 OKをクリックすると新規のアーカイブが受け取る ファイルとディレクトリを待つ状態になります。新規のアーカイブにファイルを 追加するには、Addをクリックするとブラウザウィンドウ (図14-2参照)が出て来て、アーカイブに入れたい ファイルやディレクトリを検索することができます。終了した時点で OKをクリックし、次にCloseを クリックしてアーカイブを閉じます。

図 14-2. File Rollerによるアーカイブの作成

ティップヒント
 

File Rollerには、ここで説明してある以上に 操作できることが多くあります。詳細情報はFile Rollerマニュアルを 参照してください。(Help =>Manualとクリックして 表示します。)

14.3.2. シェルプロンプトでファイルを圧縮

圧縮されたファイルは、通常のファイルより少ないディスク容量を使用し、より速い ダウンロードが出来ます。Red Hat Linuxでは、gzip, bzip2あるいはzipの圧縮ツールを使用してファイルを圧縮できます。

bzip2圧縮ツールは、最も高い圧縮率の提供とほとんどのUNIXライクな オペレーティングシステムで使用されていることから推薦できるものです。 gzip圧縮ツールもほとんどのUNIXライクなオペレーティングシステムで 使用されています。 Linux とMS Windowsのような他のオペレーティングシステムとの間で ファイルを転送する必要がある場合は、Windowsの圧縮ユーティリティと互換性のある zip を使用すべきです。

圧縮ツールファイル拡張子解凍ツール
gzip.gzgunzip
bzip2.bz2bunzip2
zip.zipunzip

表 14-1. 圧縮ツール

慣習的に, gzipで圧縮されたファイルは、拡張子.gzを 持ちます。bzip2で圧縮したファイルは、拡張子.bz2を 持ち、zipで圧縮したファイルは、拡張子.zipを持ちます。

gzipで圧縮したファイルは、gunzipで解凍できて、 bzip2で圧縮したファイルは、bunzip2で解凍できます。 さらに、zipで圧縮したファイルは、unzipで解凍します。

14.3.2.1. Bzip2 と Bunzip2

bzip2でファイルを圧縮するには、シェルプロンプトで次の コマンドを入力します:

bzip2 filename

そうするとファイルは圧縮され filename.bz2として保存されます。

この圧縮ファイルを解凍して戻すには、次のコマンドを入力します:

bunzip2 filename.bz2

filename.bz2は、削除されてfilenameに入れ替わります。

bzip2を使用して複数のファイルとディレクトリを同時に 圧縮するには、スペースを1つずつ入れながら列記します :

bzip2 filename.bz2 file1 file2 file3 /usr/work/school 

上記のコマンドは、file1, file2, file3, 及び、 /usr/work/school ディレクトリの内容 (ディレクトリがあると想定)を圧縮して、 filename.bz2というファイルに入れます。

ティップヒント
 

詳細については、シェルプロンプトでman bzip2man bunzip2とタイプして、 bzip2bunzip2のmanページをお読みください。

14.3.2.2. Gzip と Gunzip

gzipを使用してファイルを圧縮するには、 シェルプロンプトで 次のコマンドを入力します:

gzip filename

これでファイルは圧縮されて、 filename.gzの名前で保存されます。

この圧縮ファイルを解凍して戻すには、次のコマンドを入力します:

gunzip filename.gz

filename.gzが削除されて、 filenameに入れ替わります。

gzipを使用して、複数のファイルとディレクトリを同時に 圧縮するには、スペースを1つずつ入れて列記します:

gzip -r filename.gz file1 file2 file3 /usr/work/school 

以上のコマンドは、file1, file2, file3及び, /usr/work/schoolディレクトリの内容 (ディレクトリが存在すると想定)を圧縮して、 filename.gzファイルの中に入れます。

ティップヒント
 

詳細については、シェルプロンプトでman gzipman gunzipと タイプして、 gzipgunzipのmanページをお読み下さい。

14.3.2.3. Zip と Unzip

zipを使用してファイルを圧縮するには,以下のコマンドを 入力します:

zip -r filename.zip filesdir

この例では、filename.zipが作成しようとしているファイル名を表し、 filesdirが新しいzipファイルに入れたいディレクトリを表しています。 -rオプションは、filesdirディレクトリ に含まれている ファイルと他のサブディレクトリなどすべての内容を再帰的に指定するものです。

zipファイルを抽出するには、次のコマンドを 入力します:

unzip filename.zip

zipで複数のファイルやディレクトリを同時に圧縮するには、 1つずつスペースを入れながら列記します:

zip -r filename.zip file1 file2 file3 /usr/work/school 

上記のコマンドでは、file1, file2, file3及び、 /usr/work/school ディレクトリの内容 (ディレクトリが存在すると想定)をまとめて圧縮して、 filename.zipというファイルに入れます。

ティップヒント
 

詳細については、シェルプロンプトで man zipman unzipと入力して、 zipunzipのmanページをお読み下さい。

14.3.3. シェルプロンプトでアーカイブファイル作成

tar ファイルは、複数のファイル及び、ディレクトリをまとめて 1つのファイルにしたものです。これはバックアップやアーカイブを作成するのに便利なものです。

以下にtarで使用されるオプションを幾つか示します:

tarファイルを作成するには、つぎの様にタイプします:

tar -cvf filename.tar directory/file

この例では、filename.tarは、新しく作成するファイルの名前を示し、 directory/fileは、アーカイブファイルにいれるディレクトリや ファイルの名前を示します。

tarを使用して、複数のファイルとディレクトリを同時に まとめるには、1つずつスペースを入れながら列記します:

tar -cvf filename.tar /home/mine/work /home/mine/school

上記のコマンドは、 /home/mineの中にあるworkschoolのサブディレクトリのすべてのファイルを、現在のディレクトリの filename.tarと呼ばれる新しいファイルに入れます。

tarファイルの内容を一覧で表示するには、次のようにタイプします:

tar -tvf filename.tar

tarファイルの内容を展開するには、次の様にタイプします:

tar -xvf filename.tar

このコマンドは、tarファイルを削除するのではありません。 しかし 現在のアーカイブを開いた内容のコピーをカレントディレクトリに入れ込みます。 アーカイブファイルが使用したディレクトリ構造はまだ保存されています。 例えば、tarファイルがfoo/というディレクトリ内の bar.txtファイルを含んでいるとすると、このアーカイブの 抽出では、現在の作業ディレクトリにディレクトリfoo/が 作成され、その中にファイルbar.txtが入っています。

デフォルトでは、tarコマンドはファイルを圧縮するのでは ないことを忘れないで下さい。 tarを作成して、さらに圧縮したファイルを作成するには、 -jオプションを使用します:

tar -cjvf filename.tbz file

bzip2で圧縮されたtarファイルは慣習的に 拡張子.tbzが与えられます。しかし、幾らかのユーザーは tar.bz2の拡張子を使用してアーカイブファイルを作成する こともあります。

上記の例では、このコマンドは、アーカイブを作成して、さらに圧縮してfilename.tbz ファイルを作ります。bunzip2 コマンドを使用してfilename.tbz ファイルを解凍すれば、 filename.tbzファイルは削除されて、 filename.tarに 入れ替わります

また、bzip tarファイルを1つの コマンドで解凍と展開することができます:

tar -xjvf filename.tbz

アーカイブ化(tar)とgzip圧縮のファイルを作成するには、 -zオプションを使用します:

tar -czvf filename.tgz file

gzipで圧縮されたtarファイルは慣習的に .tgzという拡張子が与えられます。

このコマンドは、filename.tarというアーカイブファイルを作り、 さらに圧縮してfilename.tgzファイルを作成します。(filename.tar は保存されていません)。filename.tgzファイルを gunzipコマンドで解凍すると、filename.tgzファイルは 削除されて、filename.tarに入れ替わります。

gzip tarファイルは1つのコマンドで展開できます:

tar -xzvf filename.tgz

ティップヒント
 

コマンドman tarをタイプして tarコマンドのmanページで詳細をお読み下さい。