locate "*.png"
retorna todos os arquivos que terminam com .png
, conforme o esperado.
locate "test.*"
não retorna nada, mas existem arquivos nomeados test
no meu sistema.
locate "*test"
retorna todos os arquivos que terminam com test
, conforme o esperado.
locate "test*"
não retorna nada, mas há arquivos começando test
no meu sistema.
Por que os curingas parecem funcionar apenas para "terminar com"?
test*
etest.*
?Respostas:
.
é tratado como ponto, não como na expressão regular como um caractere arbitrário; portantotest.*
, não correspondetest
, mastest.foo
.localize armazena o caminho completo para o arquivo , portanto, para encontrar arquivos começando com teste, você deve usar
locate "*/test*"
.O último ponto pode ser confuso, pois
locate foo
encontra qualquer coisa que incluafoo
; portanto, o padrão é interpretado como*foo*
. Parece que o padrão não está entre estrelas, se já houver um curinga no padrão.Isenção de responsabilidade : fiz alguns testes e estas são minhas conclusões, não posso prová-las citando a página de manual, que parece muito rudimentar.
fonte
man locate
eu tenho: Se --regex não for especificado, PATTERNs podem conter caracteres brilhantes. Se algum PADRÃO não contiver caracteres brilhantes, localize-se como se o padrão fosse * PADRÃO *.