私がやっていた圧縮された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がいらないって気付いて付けなくなったのは、このあたりだと思う。