S-JIS[2003-09-07/2007-09-20] 変更履歴

tar

tar形式(Tape Archive)のアーカイブの作成・展開を行うUNIXコマンド


tar -xvf アーカイブファイル 〔-C 展開先ディレクトリ〕

tarファイルの展開を行う。
アーカイブファイル内のディレクトリ構造のまま展開される。

-Cの指定が無い場合、カレントディレクトリに展開する。


tar -cvf アーカイブファイル 〔-C 作成元ディレクトリ〕 ファイル…

tarファイルを作成する。
ファイルを指定する際にディレクトリごと指定すると、その構造も保存される。
ファイルにディレクトリ名のみを指定すると、そのディレクトリの下のファイルがすべて保存される。
このディレクトリがルートから(ディレクトリ名が「/」か始まる)のときは、先頭の「/」が削除された状態で保存される。
(Solarisでは(?)、ルートから始まる形式でファイル名を指定してアーカイブすると、解凍したときにそのままルートに展開されてしまうので要注意![2007-09-20]

アーカイブファイルが既に存在している場合は、前のアーカイブファイルは削除される。
ファイルが1つも無いアーカイブを作ろうとすると、面白いメッセージが見られる(アーカイブは作成できない。前のアーカイブファイルは残ったままとなる)。

-Cの指定が有る場合、各ファイルはそのディレクトリからの相対位置となる。


tar -rvf アーカイブファイル 〔-C 作成元ディレクトリ〕 ファイル…

tarファイルにファイルを追加する。

アーカイブファイルが存在していなかった場合は、新しく作られる(-cオプションを兼ねる)。

その他については、-cオプションの場合と同じ。


tar -tvf アーカイブファイル

tarファイルの中のファイルの一覧を表示する。


オプションの連続書き

オプションは「-」(ハイフン)を付けて指定するが、1つずつ書かずにハイフンを省略できる。[2003-09-20]
つまり、「-xvf ファイル」=「-x -v -f ファイル」、「-xC ディレクトリ」=「-x -C ディレクトリ」。


「-f」無し

オプションの「-f」を付けると、アーカイブファイルを扱う。[2003-09-20]
これが無い場合、ファイルの代わりに標準入出力が対象となる。

例)tar -c dir | gzip > dir.tar.gz
例)gzip -cd archive.tgz | tar -xC 展開先ディレクトリ

tar -f -

アーカイブファイルを指定すべきところに「-」(ハイフン)を指定すると、ファイルの代わりに標準入力からのデータをアーカイブとして扱う。

例)gzip -cd アーカイブファイル | tar -xvf -

テキストファイルにアーカイブしたいファイルの一覧を書き、そのファイル群をアーカイブする方法

$ ls Test
Test.class  Test.java  readme.txt
$ vi list
$ cat list
Test/Test.class
Test/Test.java
Test/readme.txt

$ tar -cvf test.tar `cat list`
Test/Test.class
Test/Test.java
Test/readme.txt

$ tar -tvf test.tar
-rw-r--r-- user/users   687 2002-09-05 15:08:31 Test/Test.class
-rw-r--r-- user/users   288 2002-09-05 15:08:31 Test/Test.java
-rw-r--r-- user/users    34 2002-09-05 17:07:12 Test/readme.txt

UNIXコマンドへ戻る
メールの送信先:ひしだま