大きなファイルを圧縮することにより、ディスクスペースを節約したり、ダウンロードにかかる時間を短縮したりできます。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が生成後のzipファイルの名前を、filesが圧縮したいファイルの名前を表します。
zipファイルの内容を展開するには、次のように入力します。
unzip filename.zip |
zipやgzipを使って、複数のファイルを1度に圧縮することもできます。その場合は、ファイルの間をスペースで区切って指定します。
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ファイルにまとめたいファイルやディレクトリを表します。
これらのファイルやディレクトリのパス名としては、絶対パスと相対パスのいずれでも使えます(パス名の詳細については、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.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 |