2.8.3 ディレクトリであるファイルの展開

アーカイブメンバーであるディレクトリの展開は、他のファイルの展開と同様です。主な違いは、作業ディレクトリに同じ名前のディレクトリがある場合、展開したファイルがその既存ディレクトリに入ることです。また、既存ディレクトリに展開対象のメンバーと同じ名前のファイルがあれば、展開したファイルで、作業ディレクトリ(およびそのサブディレクトリ)内の既存ファイルを置き換えます。既存ファイルのほうが新しくても置き換えます。ただし、この動作を変える特別なオプションもあります(tarがファイルを書き込む方法の変更を参照)。

一方、格納されたファイル名にディレクトリ名が含まれ、展開時にそのディレクトリが作業ディレクトリの下に存在しない場合、tarはディレクトリを作成します。

--extractでディレクトリを展開する方法を例で示します。practiceにいなければ移動し、ファイルfolkとjazzを削除してください。次に、親ディレクトリへ戻り、アーカイブmusic.tarを展開します。アーカイブ全体でも、今削除したファイルだけでも展開できます。全体を展開するには、アーカイブ名music.tarの後にファイル名引数を付けません。削除したファイルだけを展開するには、次のコマンドを使います。

$ tar -xvf music.tar practice/folk practice/jazz
practice/folk
practice/jazz

--verbose(-v)を2回指定すると、tarは展開したファイルの詳細を、次の例のように表示します。

$ tar -xvvf music.tar practice/folk practice/jazz
-rw-r--r-- me/user          28 1996-10-18 16:31 practice/jazz
-rw-r--r-- me/user          20 1996-09-23 16:44 practice/folk

ディレクトリpracticeをpracticeとしてアーカイブし、各ファイルの名前にpracticeを含めて格納したため、展開時のファイル名にもpracticeを含める必要があります。