2018年以降の記事はGitHub Pagesに移行しました

tarコマンドでzオプションを使わずにファイルを解凍する

あらすじ

Solarisにデフォルトで入っているtarではzオプションなどが使えない。のでtar.gzやtar.bz2ファイルを一発で解凍するにはパイプでつないでやる必要がある。

コマンド

$ gzip -cd xxxx.tar.gz | tar -xvf -

こんな感じ。cオプションを指定してやる。……やってる事はわかるけど、tarの最後にあるハイフンはなんじゃろう。tar -f -で標準入力から持ってくるルール?

ふむ。マニュアルを見てみる。

tarfile の名前が - である場合は、tarは標準出
力への書き込みあるいは標準入力からの読み取り
のいずれか適当な操作を行います。tarはパイプ
ラインの先頭もしくは末尾として使用することが
できます。また、次のコマンドを使えば、tar
は、 ディレクトリ階層を移動するためにも使用す
ることができます。

ルールだったようだ。