나는 다음과 같은 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*'