QA@IT

tar が標準入力を受け取る時に - が必須の理由

7684 PV

LPICの学習をしていてtarを使っての bz2 ファイルの解答に関する問題が出てきました。

tar xjf example.tar.bz2
bunzip2 -c example.tar.bz2 | tar xf -

の2通りの方法が解説されていて、後者のパイプを使う場合には標準入力を受け取る - が必須と書かれていました。
他のコマンドではパイプを使っても - が必要ないのに何故この場合は必要になるのでしょうか?

回答

パイプの場合で必須というよりかは、tarのfオプションに-を指定すると標準入力から受け取るようになる、という意味ですね。

詳しい経緯は知りませんが、tarはfオプションを省略するとリモート磁気ドライブ(/dev/rmt0)が指定されるそうです。
(手元のLinuxで試したら、省略しても標準入力から受け取られましたが…)

編集 履歴 (0)
  • fオプションの(昔の)記述ルールなんですね。ありがとうございます。 -
  • もともとtar はテープアーカイブコマンドですからね。その頭文字でt arです。テープ装置があれば今もテープを対象にできます。デフォルトどっちかは試した事ないですけど。 -
  • Linuxのgnu tarだとman tarにデフォルトが -f- だと書いてあります。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。