- ベストアンサー
tarの引数の-について
tar -C dirIN -c `ls dirIN` | tar -x -C dirOUT tar -C dirIN -c -f - `ls dirIN` | tar -x -C dirOUT -f - 上の二つのコマンドは、動作が同じになるのでしょうか? 違う(=何か考慮しておかなければならない)ことがあれば教えてください。
- みんなの回答 (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 - )
その他の回答 (1)
- wormhole
- ベストアンサー率28% (1626/5665)
同じになりません。 man tar で引数の意味を調べてみてください。 特に -f 。
お礼
レスありがとうございます。 ここまでの説明がもらえるとは、思ってもいませんでした。 感謝です。 勉強になります。精進します。