Linuxサーバー管理入門 - Linuxサーバー管理でPerlを使う

tarコマンド - ファイルのアーカイブ化と展開

tarコマンドを使用すると、ディレクトリとそれ以下のファイルをひとつのファイルにまとめることができます。まとめたファイルをコピーしたりしても、内部の更新日時などの情報が維持されます。

tarファイルにアーカイブ化する

ディレクトリ以下の内容をtarファイルに、アーカイブ化するには、tarコマンドの「cf」オプションを使用します。(カレントディレクトリに、projectというディレクトリがあるとします。)

tar cf project.tar project

 cはcreateという意味でアーカイブを作成するという意味です。fはファイルという意味で、ファイルやディレクトリが対象の場合に指定します。第一引数はアーカイブしたあとのファイル名です。project.tarのようにします。第二引数は、対象のディレクトリです。アーカイブは日本語で書庫と呼ばれたりします。

tarファイルを展開する

 アーカイブ化したものを展開するには、xf オプションを使用します。xはextractという意味で抽出という意味です。

tar xf project.tar

アーカイブ化と圧縮の違い

 tarはアーカイブ化のためのコマンドで、圧縮のコマンド( gzipなど)とはことなります。アーカイブ化とは、複数のファイルをひとつのファイルにまとめることをいいます。圧縮とは、ひとつのファイルのバイト数を圧縮アルゴリズムを使って小さくすることをいいます。

gzipの圧縮・解凍と同時に行う「z」オプション

一般的にファイルは「tar.gz」で、固められていることが多いです。これは、tarでファイルをアーカイブ化した後に、gzipを使って、圧縮されているファイルです。

foo.tar.gz

これを一度に解凍・展開するには「z」オプションを追加することで行えます。

tar xfz project.tar.gz

また、アーカイブ化と圧縮を同時に行うことも、zオプションを追加することで行えます。

tar cfz project.tar.gz project

「xfz」というオプションと「cfz」というオプションは非常によく使うので、覚えておきましょう。

アーカイブ化や展開の処理内容を表示する「v」オプション

「v」オプションを一緒に使用すると、アーカイブ化や展開の処理内容が出力されます。

tar xfzv project.tar.gz

どんな処理が行われたがわかるので、理解しやすいです。