• ベストアンサー

tarの引数の-について

tar -C dirIN -c `ls dirIN` | tar -x -C dirOUT tar -C dirIN -c -f - `ls dirIN` | tar -x -C dirOUT -f - 上の二つのコマンドは、動作が同じになるのでしょうか? 違う(=何か考慮しておかなければならない)ことがあれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

> 上の二つのコマンドは、動作が同じになるのでしょうか? GNU tarでは「-f」のデフォルトは「-」なので同じになります。 日本語マニュアルには「-f」のデフォルトが「/dev/rmt0」 と書かれていますが、 これは間違いです。LANG=Cを設定して英語マニュアルを見れば正しい記述があり ますし、何よりソースコード上「-」となっています。 > 違う(=何か考慮しておかなければならない)ことがあれば教えてください。 GNU tar の「-f」のデフォルトはコンパイル時に変更することができます。(※) ※configure 時にDEFAULT_ARCHIVE 環境変数を設定しておけば、それがデフォル  トになります。設定していない、または空文字列の場合は「-」になります。 また、GNU tar 以外のtar (他のUnixシステムに標準で付属するtar )では 「/dev/rmt0」 がデフォルトになっているかもしれません。 なので、互換性を高めるためにも明示的に「-f」を指定することを強くお勧めし ます。 もっとも、互換性を高めるなら以下のいずれかの表現とスべき・・・ ( cd dirIN && tar cf - `ls` ) | ( cd dirOUT && tar xf - ) ( cd dirIN && ls | xargs tar cf - ) | ( cd dirOUT && tar xf - )

nico60000
質問者

お礼

レスありがとうございます。 ここまでの説明がもらえるとは、思ってもいませんでした。 感謝です。 勉強になります。精進します。

その他の回答 (1)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

同じになりません。 man tar で引数の意味を調べてみてください。 特に -f 。

関連するQ&A