大きなファイルを圧縮することにより、ディスクスペースを節約したり、ダウンロードにかかる時間を短縮したりできます。Linuxファイルは、オープンソースの圧縮ツール Gzip や Zip で圧縮できます。これらは大部分のオペレーティングシステム認識可能です。
圧縮されたファイルの拡張子は、.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ファイルの名前を、files がzipしたいファイルの名前を表します。
zipファイルの内容を見るには、次のように入力します。
unzip filename.zip |
zipやgzipを使って、複数のファイルを一度に圧縮することもできます。その場合は、ファイルの間をスペースで区切って指定します。
gzip filename.gz file1 file2 file3 /user/work/school |
上のコマンドは、file1 、file2 、file3 と、/user/work/school ディレクトリの内容をすべて圧縮して、filename.gz という名前の1つの圧縮ファイルを生成する例です。
tarファイルは、複数のファイル、1つのディレクトリの内容すべて、複数のディレクトリを1つのファイルにまとめたものであり、バックアップやアーカイブを作るには最適です。一般に、tarファイルの拡張子は .tar になります。
tarファイルを作るには、次のように入力します。
tar -cvf filename.tar files/directories |
この例で、filename.tar は生成されるtarファイルを、files/directories はtarファイルにまとめたいファイルやディレクトリを表します。
これらのファイルやディレクトリのパス名としては、絶対パスと相対パスのいずれでも使えます(パス名の詳細については、the section called cdによるディレクトリの変更 in Chapter 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.txt 、file2.txt 、file3.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 |