Gzip、Zip、Tarによるファイルの圧縮とアーカイブ

Gzip、Zipによる圧縮

大きなファイルを圧縮することにより、ディスクスペースを節約したり、ダウンロードにかかる時間を短縮したりできます。Linuxファイルは、オープンソースの圧縮ツールGzipZipで圧縮できます。これらは大部分のオペレーティングシステムで認識可能です。

圧縮されたファイルの拡張子は、.gzになります。gzipコマンドは、拡張子が.gzの圧縮ファイルを作ります。gunzipは、圧縮ファイルを解凍して、なおかつ.gzファイルを削除します。

シェルプロンプトからファイルを圧縮する場合は、次のコマンドを入力します。

gzip filename.ext

ファイルは圧縮され、filename.ext.gzという名前で保存されます。

圧縮ファイルを展開するには、次のように入力します。

gunzip filename.ext.gz

filename.ext.gzが削除され、filename.extという名前のファイルに置き換わります。

Linux以外の環境のユーザーとファイルをやり取りするには、互換性の問題を回避するために、zipを使います。Red Hat Linuxではzipファイルやgzipファイルを簡単に開けますが、Linux以外のオペレーティングシステムではgzipファイルを扱えない可能性があります。

ファイルをzipで圧縮するには、次のように入力します。

zip -r filename.zip files

この例では、filename.zipが生成後のzipファイルの名前を、filesが圧縮したいファイルの名前を表します。

zipファイルの内容を展開するには、次のように入力します。

unzip filename.zip

zipやgzipを使って、複数のファイルを1度に圧縮することもできます。その場合は、ファイルの間をスペースで区切って指定します。

gzip filename.gz file1 file2 file3 /user/work/school 

上のコマンドは、file1file2file3と、/user/work/schoolディレクトリの内容をすべて圧縮して、filename.gzという名前の1つの圧縮ファイルを生成する例です。

tarを使ったアーカイブ

tarファイルは、複数ファイル、またはディレクトリ(1つまたは複数)の内容を1つのファイルにまとめたものであり、バックアップやアーカイブを作るには最適です。一般に、tarファイルの拡張子は.tarになります。

tarファイルを作るには、次のように入力します。

tar -cvf filename.tar files/directories

この例で、filename.tarは生成されるtarファイルを、files/directoriesはtarファイルにまとめたいファイルやディレクトリを表します。

これらのファイルやディレクトリのパス名としては、絶対パスと相対パスのいずれでも使えます(パス名の詳細については、cdによるディレクトリの移動項第10章を参照してください)。複数のファイル名やディレクトリ名は、スペースで区切って指定します。

次のように入力すると、絶対パス名を使ったtarファイルが生成されます。

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

このコマンドによって、/workサブディレクトリと/schoolサブディレクトリ内のすべてのファイルが、カレントワーキングディレクトリ内にfoo.tarという名前でまとめられます。

tar -cvf foo.tar file1.txt file2.txt file3.txtコマンドは、file1.txtfile2.txtfile3.txtを、foo.tarという名前の新しいtarファイルにまとめます。

tarファイルの内容を一覧表示するには、次のように入力します。

	tar -tvf foo.tar

tarファイルの内容を展開するには、次のように入力します。

tar -xvf foo.tar

このコマンドを実行しても、.tarファイルは削除されずに残りますが、.tarの内容がカレントワーキングディレクトリにコピーされます。

tarコマンドは、ファイルを自動的に圧縮しません。圧縮してtarファイルを作るには、次のようにします。

tar -czvf foo.tar

圧縮したtarファイルの拡張子は、.tgzになり、圧縮はgzipで行われています。

圧縮したtarファイルを展開するには、次のように入力します。

tar -xzvf foo.tgz