tar
UNIX
UNIXコマンド

圧縮されたtarの展開方法の変遷

私がやっていた圧縮されたtarの展開の仕方を書いてみる。

~1992年

gzipが出る前。圧縮に使っていたのはcompressで圧縮したtarの拡張子はtar.Z。ファイルを伸長して標準出力に出力するzcatがあり、tar.Zを展開するときは

zcat hoge.tar.Z | tar xf -

としていた。

1993年~

gzipが登場した。わりとすぐにGNU tarがzオプションを実装したので、tar.gzを展開するときは

tar xzf hoge.tar.gz

とできた。しかし、当時はGNU tarが入っていてかつ新しいことはあまり期待できないので、gzipに含まれているzcatを使って

zcat hoge.tar.gz | tar xf -

とすることもあったし、うっかりcompress用のzcatを呼んでしまうとゴミが吐かれるので

gzip -cd hoge.tar.gz | tar xf -

とgzipを明示的に呼ぶこともあった。

1996年~

bzip2が登場した。GNU tarでのbzip2の対応はかなり遅かったので、ファイルを伸長して標準出力に出力するbzcatを使って

bzcat hoge.tar.bz2 | tar xf -

としていた。

その間に多くのLinuxディストリビューションがGNU tarをbzip2に対応させていた。オプションはyが一般的で

tar xyf hoge.tar.bz2

のようにできたが、どこでも使える可能性が低くいので当てにしなかった。yオプションがアップストリームに取り込まれてから、Iになったりjになったりしたので、まったく当てにできなかった。

2005年~

GNU tarが圧縮ファイルの形式を自動認識するようになったので、どの圧縮ファイルについても

tar xzf hoge.tar.*

とするようになった。この時点でzは不要になっていたが、圧縮ファイルを自動認識をさせるにはzが必要だと誤解していたため指定し続けていた。

2009年~

xzが登場してGNU tarにJオプションが生えたが、自動認識させればよいのでそれまでと変わらず。

2011年~

zがいらないって気付いて付けなくなったのは、このあたりだと思う。