Seu glob só será compatível se o nome começar com lua
. Experimente este glob:
locate '*lua*so*'
Estou no Ubuntu 11.04, onde tenho:
$ locate --version
mlocate 0.23.1 [...]
A página man locate
diz:
If --regex is not specified, PATTERNs can contain globbing characters. If any PATTERN contains no globbing characters, locate behaves as if the pattern were *PATTERN*.
OK, para fazer um pequeno teste: primeiro, apenas procurar por 'lua' funciona - mas retorna uma tonelada (500+) de resultados:
$ 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
Eu quero pesquisar por .so
arquivos com lua
no nome do arquivo, então eu tento isso como uma tentativa de usar um padrão de globbing:
$ locate 'lua*so*'
Nada, 0 resultados. Então estou tentando com um regex:
$ 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
Bem, isso funciona - então é bom o suficiente.
Mas o que me intriga é isso - se a página man diz que o globbing é suportado quando não estiver usando o regex, como devo formatar meu padrão glob para que ele funcione?