Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)

No.1292  Re[2]:locateでWindows上の全領域を検索したい
発言者: nil
発言日: 2003 06/30 21:53
 

これも私が困ったのと同じ問題のような気が…

Win2k,XP + Cygwin 1.3.22-1 の VFAT上(^^;)の話ですが、Shift-JIS の
場合に漢字の 2byte目が '\\'(backslash) の文字を含む名前のディレク
トリがあると発生するようです。NTFS では試したことがありません。

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

自分で漢字ファイル(ディレクトリ)名を使うことが少ないので、はじめ
は気がつかなかったのですが、いまさらながら multi-byte の扱いにい
ろいろ問題があるようで苦笑しました。

(上記のようなディレクトリを rm -rf するとコマンドが終了しない、等)

最近、Cygwin JE などという本で日本語環境に触れているらしいのです
が、参考になるかもしれません。私は未見です。

Cygwin とは別の find を使うとか(Win32版GNU や NT utils ?)、いろい
ろ誤魔化し方はあるとは思います。

locate だけで良いのならば、updatedb を改造して、find を使わず別の
手順でlist を生成してから、locate DataBase を作っても良いでしょう。

どうやら ruby では上記のような問題を回避しているようです。ruby を
知らないので次のようなでっちあげしか試してませんが。

ruby -Ks -rfind -e 'Find.find("C:/foo") do |f|; print "#{f}\n"; end'

(perl 5.8 ではどうするのがよいのか思いつかなかった。find2perl だ
けでは駄目そうなのですがどうでしょうか?)


根本的には Cygwin の国際化(?日本語化)がまだ不十分で SJIS locale
だけでは対応できないような気がしているのですが、実装を知らないの
で私の勘違いかもしれません。識者の方、どうなんでしょう?

(前、MinGW で find を compile すればどうなるかと思ったのですが、
少なくとも Cygwin の MinGW では足りないものがあるようです。)

#思わず長くなりましたが…


▼関連発言

1288:locateでWindows上の全領域を検索したい [あき] 06/28
 └1290:Re:locateでWindows上の全領域を検索したい [MSだす。] 06/29
  └1292:Re[2]:locateでWindows上の全領域を検索したい [nil] 06/30
   ├1297:Re[3]:locateでWindows上の全領域を検索したい [knabe] 07/01
   │└1298:Re[4]:locateでWindows上の全領域を検索したい [MSだす。] 07/01
   │ └1299:Re[5]:locateでWindows上の全領域を検索したい [knabe] 07/01
   │  ├1300:Re[6]:locateでWindows上の全領域を検索したい [あき] 07/01
   │  │├1302:Re[7]:locateでWindows上の全領域を検索したい [あき] 07/01
   │  │└1304:Re[7]:locateでWindows上の全領域を検索したい [nil] 07/02
   │  │ └1305:Re[8]:locateでWindows上の全領域を検索したい [nil] 07/02
   │  └1303:Re[6]:locateでWindows上の全領域を検索したい [nil] 07/02
   │   └1306:Re[7]:locateでWindows上の全領域を検索したい [knabe] 07/02
   │    └1312:Re[8]:locateでWindows上の全領域を検索したい [nil] 07/02
   └1327:Re[3]:locateでWindows上の全領域を検索したい [nil] 07/06
    └1330:Re[4]:locateでWindows上の全領域を検索したい [nil] 07/08
     ├1332:Re[5]:locateでWindows上の全領域を検索したい [nil] 07/09
     └1341:Re[5]:locateでWindows上の全領域を検索したい [あき] 07/13 <

Pass 保存

早田のホームページへ
CGIROOM