locate "*.png"
devuelve todos los archivos que terminan en .png
, como se esperaba.
locate "test.*"
no devuelve nada, pero hay archivos nombrados test
en mi sistema.
locate "*test"
devuelve todos los archivos que terminan en test
, como se esperaba.
locate "test*"
no devuelve nada, pero hay archivos que comienzan test
en mi sistema.
¿Por qué los comodines parecen funcionar solo para "terminar con"?
test*
ytest.*
?Respuestas:
.
se trata como un punto, no como en expresiones regulares como un carácter arbitrario, por lotest.*
que no coincidetest
, perotest.foo
.localizar almacena la ruta completa al archivo , por lo que para buscar archivos que comiencen con la prueba, debe usar
locate "*/test*"
.El último punto puede ser confuso, ya que
locate foo
encuentra algo incluidofoo
, por lo que el patrón se interpreta como*foo*
. Parece que el patrón no está encerrado en estrellas, si ya hay un comodín en el patrón.Descargo de responsabilidad : hice algunas pruebas y estas son mis conclusiones, no puedo probarlas citando la página de manual, que parece muy rudimentaria.
fuente
man locate
tengo: Si no se especifica --regex, los PATRONES pueden contener caracteres globales. Si algún PATRÓN no contiene caracteres globales, localizar se comporta como si el patrón fuera * PATRÓN *.