プロが教える店舗&オフィスのセキュリティ対策術

 cat src.txt > dst.txt

とすると、Linux だと上書きしてくれるのですが、
cygwin だと「すでにファイルが存在します」と
エラーメッセージがでて上書きできません。

1.なぜでしょうか?仕様が違うのでしょうか?
2.どうすれば上書きできるようになるでしょうか?

A 回答 (2件)

>!はcshの場合で、bashの場合は >| です。



cat src.txt >| dst.txt
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/29 22:12

> 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は成功しました。ありがとうございます。

補足日時:2005/06/29 12:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!