- ベストアンサー
Cygwinのリダイレクトでファイルの上書きできない?
cat src.txt > dst.txt とすると、Linux だと上書きしてくれるのですが、 cygwin だと「すでにファイルが存在します」と エラーメッセージがでて上書きできません。 1.なぜでしょうか?仕様が違うのでしょうか? 2.どうすれば上書きできるようになるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>!はcshの場合で、bashの場合は >| です。 cat src.txt >| dst.txt
その他の回答 (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 設定を問わず強制的に上書きになります
質問者
補足
ありがとうございます。 どうも Cygwin の場合、 cat src.txt >! dst.txt とすると、「!」という名前のファイルが作成されて、このファイルに cat の内容がリダイレクトされるようです。 回避方法はないでしょうか? なお、noclobberは成功しました。ありがとうございます。
お礼
ありがとうございます!これです! ひとつ賢くなりました。