tarファイルの中身を見るのに、小さなファイルなら解凍して中身を展開すればよいですが、数GBもあるようなファイルだと、解凍も一苦労です。
そういう人のために、tarの中の任意のファイルだけを抽出したり、表示したりすることができます。
まず、含まれているファイルの一覧を表示するには"t"オプションを使います。tar.gz またはtgzのようにgzipで圧縮されているファイルの場合は"z"オプションもつけます。 ※ 最近のtarコマンドは、圧縮形式を自動判別してくれるため、"z" オプションは省略可能です。
# tar ztf hoge.tar.gz exe/ exe/foo.exe txt/ txt/hoge.txt
"v"もつけると、ls -l のようにファイルのサイズや更新日時なども出力されます。
# tar ztf hoge.tar.gz drwxr-xr-x root/root 0 2009-01-17 06:56 exe/ -rw-r--r-- root/root 11357 2009-01-19 07:12 exe/foo.exe drwxr-xr-x root/root 0 2009-01-17 06:56 txt/ -rw-r--r-- root/root 334 2009-01-30 11:41 txt/hoge.txt
中身を取り出すには"x"を使います。じつはファイルを指定する以外は普通のファイルの展開と同じです。exe/foo.exe を取り出してみます。
# tar zxvf hoge.tar.gz exe/foo.exe exe/foo.exe
テキストファイルなどの場合は取り出さずに、中身を見ることもできます。"x"と"O (オー)"を使います。
# tar zxOf hoge.tar.gz txt/hoge.txt hogehoge hogehoge hogehoge
gzipやbzip2などで圧縮されている場合は使えませんが、単なるtarファイルの場合は、"r"でファイルを追加できます。--delete で削除もできます。(以下は追加の例です)
# tar rf hoge.tar abcd.txt # tar tf hoge.tar exe/ exe/foo.exe txt/ txt/hoge.txt abcd.txt