gzip対応していないtarでtar.gzをワンライナーで圧縮・解凍する

投稿者:しんさん        2017/01/04

GNU tarではgzip形式をtarコマンドが直接扱える

  • ファイルをかためて保管したい

というときにUNIXではtar.gz形式のファイルがよく使われます。

Linux等で使われいるGNU tarではgzip形式を直接tarコマンドで扱うことができます。

##圧縮
[user@testsv ~]$ tar -zcvf test.tar.gz ./test
./test/
./test/test.txt##解凍
[user@testsv ~]$ tar -zxvf test.tar.gz
./test/
./test/test.txt

tar -zオプションが使えない時

環境次第かもしれませんがAIXではtar -zオプションが使用できません。
そこで、「-」を使用して標準出力を介してgzipコマンドへパイプで渡すことでtar.gzをワンライナーで作成することができます。

##圧縮
[user@testsv ~]$ tar -cvf - ./test | gzip - > test.tar.gz
a ./test
./test/test.txt 0 ブロック。

gzip -dcオプションを使用すると結果を標準出力へ渡すことができるため、解凍はこれを利用してワンライナーで行います。

##解凍
[user@testsv ~]$ gzip -dc test.tar.gz | tar -xvf -
x ./test
x ./test/test.txt, 0 バイト, 0 メディア・ブロック。

gzipの代わりにcompressも使用できる

gzipが使用できない場合、compressを使用してtar.Z形式の圧縮ファイルを作る事ができます。

##圧縮
[user@testsv ~]$ tar -cvf - ./test | compress - > test.tar.Z
a ./test
./test/test.txt 0 ブロック。##解凍
[user@testsv ~]$ compress -dc test.tar.Z | tar -xvf -
x ./test
x ./test/test.txt, 0 バイト, 0 メディア・ブロック。

この記事が気に入ったら
いいね ! しよう

Twitter で

 - サーバー運用 , ,