• ベストアンサー

Cygwinのリダイレクトでファイルの上書きできない?

 cat src.txt > dst.txt とすると、Linux だと上書きしてくれるのですが、 cygwin だと「すでにファイルが存在します」と エラーメッセージがでて上書きできません。 1.なぜでしょうか?仕様が違うのでしょうか? 2.どうすれば上書きできるようになるでしょうか?

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

  • ベストアンサー
  • terra5
  • ベストアンサー率34% (574/1662)
回答No.2

>!はcshの場合で、bashの場合は >| です。 cat src.txt >| dst.txt

white-tiger
質問者

お礼

ありがとうございます!これです! ひとつ賢くなりました。

その他の回答 (1)

  • THX1138
  • ベストアンサー率51% (108/208)
回答No.1

> 1.なぜでしょうか?仕様が違うのでしょうか? シェルの設定がそのようになっているからです > 2.どうすれば上書きできるようになるでしょうか? 上書きできるよう設定すれば OK です noclobber という名称で指定します bash の場合 host% set +o noclobber (t)csh 系の場合 host% set noclobber 解除は bash の場合 host% set -o noclobber (t)csh 系の場合 host% unset noclobber また、下記のように ! をつけると cat src.txt >! dst.txt 設定を問わず強制的に上書きになります

white-tiger
質問者

補足

ありがとうございます。 どうも Cygwin の場合、  cat src.txt >! dst.txt とすると、「!」という名前のファイルが作成されて、このファイルに cat の内容がリダイレクトされるようです。 回避方法はないでしょうか? なお、noclobberは成功しました。ありがとうございます。

関連するQ&A

専門家に質問してみよう