No.1300 Re[6]:locateでWindows上の全領域を検索したい |
発言者: あき 発言日: 2003 07/01 22:44 |
皆様どうもありがとうございます。 結局updatedbがうまくいかなかった原因は、 「ディレクトリ名の中にシフトJISで2バイト目に'\'(0x5c)がを含む文字があると、 それがバックスラッシュと誤認されてしまいfindがうまく機能しない」 ということですね。 私は恥ずかしながら今回初めて知ったのですが、 この問題自体は文字コードの分野ではよく知られていることのようですね。 #UTF-8はこの点を改善したものだとか。 (参考)http://euc.jp/i18n/charcode.ja.html さて、nilさんのアドバイスに従って下記のコマンドを実行してみました。 mkdir -p 'C:/test/t0'; touch 'C:/test/t0/ソフト' mkdir -p 'C:/test/t1/ソフトABC' mkdir -p 'C:/test/t2/ABCソフト' mkdir -p 'C:/test/t3/ABCソ' for n in 0 1 2 3 ; do find C:/test/t$n -print; done すると結果は、 C:/test/t0 C:/test/t0/ソフト C:/test/t1 C:/test/t1/ソフトABC C:/test/t2 C:/test/t2/ABCソフト find: C:/test/t2: No such file or directory C:/test/t3 C:/test/t3/ABCソ find: C:/test/t3: No such file or directory となりました。 あれ?? 2バイト目に0x5cを含む文字とは次のような文字だそうですが、 http://www.hidecnet.ne.jp/~sinzan/tips/etc/etc_tip01.htm なぜ「ソ」を含むのにt0やt1にfindのエラーが出ないんでしょうか? 私の理解が不十分で申し訳ないのです。 また、「MSだす。さん」や、「knabeさん」のコメントにもあったように 本題の方の /cygdrive/c/Documents and Settings/All Users/スタート メニュー でエラーが出るのもいまだよく分かりません。 よろしかったら教えてください。 |
▼関連発言 |