tarファイルを解凍せずに中身をみる@Linux

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
タイトルとURLをコピーしました