Cygwin なんでも掲示板

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

No.1330  Re[4]:locateでWindows上の全領域を検索したい
発言者: nil
発言日: 2003 07/08 21:33
 
結局、find を置き換える適当な実装を紹介できなかったですね。

他の問題も解決できる事を考えると、knabe さんの SJIS用パッチを使
うのがよいのでしょうが、これは一般に勧めるのはちょっと考えてしま
いますね。どうでしょ?
意識していなければ、update で気づかずに上書きしてしまう人も少な
くなさそうですし。
バイナリ配布が無さそう(?)なのは自己責任で使えるかた向け、という
のは勘ぐり過ぎでしょうか。

それで、元のお話が locate が使えるだけでよい、ということならば、
updatedb の代わりに使えるスクリプトを無理矢理作ってみました。

(他に NT版UNIX-like tools の findf.c を修正して、-mno-cygwin で
/lib/mingw/CRT_noglob.o をlinkさせればなんとかなります)

libiconv, libiconv2 のインストールが必要です。
sort の前後どちらかで EUCから SJISへの変換を行って良いかどうかは
テストしてません。

# Windows の検索機能をコマンドライン・インターフェイスで使うよう
#なツールってあるのですかね。VB script か何かで組めないのかな?

--- updatedb-simple BEGIN
#!/bin/sh -
# replace simple updatedb

# Your config.
DIRS='C:\ D:\'
#DIRS='C:\tmp'

: ${LOCATE_DB=/usr/var/locatedb}
: ${LIBEXECDIR=/usr/sbin}
: ${frcode=${LIBEXECDIR}/frcode}

s2e() { iconv -f CP932 -t eucJP; }
e2s() { iconv -f eucJP -t CP932; }
#-s2e() { nkf -xed; }; e2s() { nkf -xsd; }

findall() { for d; do CMD.EXE /C DIR /B /S "$d"; done | fix2unix; }
fix2unix() { s2e | dos2unix | tr '\\' '/'; }
#fix2unix() { s2e | dos2unix | sed -e 's@\\@/@g;s@^\(.\):@/cygdrive/\1@'; }
xsort() { sort -f | e2s; }
#xsort() { e2s | sort -f; }
#xsort() { sort -f; }

findall $DIRS | xsort | $frcode > $LOCATE_DB.n

if [ -s $LOCATE_DB.n ]; then
        rm -f $LOCATE_DB
        mv $LOCATE_DB.n $LOCATE_DB
else
        rm -f $LOCATE_DB.n
fi
exit
--- END


▼関連発言

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