先日Cygwinを1.5.25-15から1.7.5-1にアップグレードして以降、
nulというファイルとして残るようになりました。
(Explorerに表示されます)
気が付いたのが最近なのではっきりとはいえませんが、
おそらくアップグレードの前後で挙動が変わっていると思います。
Cygwinの1.7.5-1環境でnulファイルが残らないようにする方法はないでしょうか。
1.7.5では特別な DOS デバイスファイル名の一部("aux", "nul", "prn")のファイルの作成がサポートされた。
仕様なのでどうにもならない。
そもそも、「誰が nul という名前のファイルを作るか?」が分からないと対策が取れないのですが、現象としては、誰かが、/dev/null の代わりに nul を出力先と指定している、という事になります。
似た様な例が、下記のページにありました。
たあのメモ: [メモ] Meadow + Cygwin の組み合わせで NUL ファイルが作成される
上記は Meadow を使っていて出来てしまう例ですが、何をやったときに nul というファイルが出来るかが分かれば、そのソフトの設定で回避出来るかもしれない、ということになります。もし、cygwin を使う度に造られるのであれば、.bashrc など、シェル起動時に実行するスクリプトを疑ってみることになります。
例えば、.bashrc 中に
なんちゃら >nul
というのがあれば、
なんちゃら >/dev/null
と修正すれば解決されると思います。
回答ありがとうございます。
Cygwinに関する質問ということで詳細を省きましたが、
コンパイル+リンクを行うためのシェルを実行したときに問題の症状が再現します。
cpやrm等の実行時にメッセージを表示させないため「>nul」としています。
「じゃあシェルを直せばよい」ということになるのですが、
諸々の事情でこれを変更するわけにはいかないので悩んでおります。
最悪の場合findで削除する方法をとるしかないのですが、何か手段はないものかと。
提示頂いたリンクは参照済みでしたが、今回の問題とは別件かなと思っていました。
同じようにnulをnullに置き換えることができれば問題を回避できそうですが、
シェルを修正せずに実現する方法がわかりません
回答ありがとうございます。
仕様であれば仕方ない、ということは理解いたしました。
その上であえて「何とかする方法」があればお願いいたします。