私は次のUbuntu 11.04を使用しています。
$ locate --version
mlocate 0.23.1 [...]
ページman locate
の内容は次のとおりです。
--regexを指定しないと、PATTERNにワイルドカード文字が含まれる可能性があります。 PATTERNにワイルドカードが含まれていない場合、検索はパターンが* PATTERN *のように動作します。
さて、簡単なテストをしましょう。まず、「lua」を検索してみてください。これにより、多くの結果(500以上)が返されます。
$ locate 'lua' | head -5
/boot/grub/hwmatch.lua
/etc/alternatives/lua-compiler
/etc/alternatives/lua-compiler-manual
/etc/alternatives/lua-interpreter
/etc/alternatives/lua-manual
$ locate 'lua' | wc -l
560
filenameに.so
含まれているファイルを検索したいので、lua
ワイルドカードパターンを試してみました。
$ locate 'lua*so*'
いいえ、結果は0です。だから正規表現を使ってみました。
$ locate --regex 'lua.*so.*' | head -5
/usr/lib/libipelua.so.7.0.10
/usr/lib/liblua5.1.so
/usr/lib/liblua5.1.so.0
/usr/lib/liblua5.1.so.0.0.0
/usr/lib/gtk-2.0/2.10.0/engines/libluaengine.so
まあ、それは効果があります。だから十分です。
しかし、私を混乱させることは、マンページに正規表現を使用せずにワイルドカードがサポートされていることを示している場合、ワイルドカードパターンを機能させるにはどのようにフォーマットする必要がありますか?
答え1
名前がで始まる場合にのみglobが一致しますlua
。グローバルに試してみてください。
locate '*lua*so*'