El programa de localización busca en una base de datos todos los nombres de ruta que coincidan con el patrón especificado. La base de datos de la base de datos se recalcula periódicamente (generalmente semanalmente o diariamente) y contiene los nombres de ruta de todos los archivos que son de acceso público .
Prueba mdfind en lugar de localizar
Actualizado2:
Texto mdfind -name que es más preciso. Solo mdfind text le proporciona archivos que también contienen texto. - David Krmpotic
$ ls -la /var/db/locate.database -r - r - r-- 1 nadie rueda 19463861 6 de abril 20:08 /var/db/locate.database $ localizar david.jpg / Users / david / temp /david.jpg
davidhq
1
debe actualizar su respuesta a la mdfind -name textque sea más precisa. Simplemente mdfind textte da archivos que también contienen texto.
davidhq
3
Los permisos pueden ser los culpables, ya que al parecer localizar no puede leer archivos que no son legibles en todo el mundo. Vea esta respuesta de Plundra para más explicaciones.
El paquete findutils de homebrew sí habilita gupdatedby los glocatecomandos que parecen superar algunas de las limitaciones de las utilidades incorporadas.
¡Gracias! pero ahora que sé, mdutil¿tiene sentido ver esto? Un caso de uso en el que puedo pensar es que puedo activar el reescaneo manualmente gupdatedbcon Spotlight, que no es tan fácil o tomaría más tiempo (también indexa el contenido de los archivos). ¿Hay otras ventajas?
davidhq
1
Reindexar con mdutil / spotlight puede llevar un tiempo seguro. updatedbEs más rápido para eso. glocateparece no tener problemas para indexar los archivos del sistema, mientras que encuentro mdfindignora ~ / Library y otros archivos del sistema. Definitivamente encuentro que consigo más golpes con glocatemás mdfinden la mayoría de las circunstancias. YMMV.
VogonPoetLaureate
Ok, estoy probando esto ahora. Creo que encontré algún problema ... puño corrí sudo gupdatedb, luego guardé la glocate Radiumsalida. Luego corrí gupdatedby dijo: /.Trashes: Permission deniedlo mismo para algunas otras carpetas. ¡Comparé la salida para ambos y fue lo mismo! Extraño ...
davidhq
Por lo que está diciendo, primero ejecutó sudo gupdatedb(ejecutándolo como root), luego siguió más tarde ejecutándose gupdatedbcomo un usuario normal que no tendría acceso a los archivos a los que tendría acceso el usuario root, lo que significa que obtendría permiso denegado errores. Si desea una base de datos completa de nombres de archivo para todo su sistema, siga ejecutándola como root. Esto expone sus archivos a otros usuarios en el sistema que pueden usar el glocatecomando. Pero si usted es el único usuario, eso debería estar bien.
VogonPoetLaureate
2
Si desea buscar en la misma base de datos que usa Spotlight, puede usar el mdfindcomando como alternativa (aunque no como un reemplazo exacto) para locate:
#SEARCHPATHS="/"
en la configuración, no ayudó.-v
la opción no parece producir ningún resultado adicional: /mdfind -name text
que sea más precisa. Simplementemdfind text
te da archivos que también contienen texto.Los permisos pueden ser los culpables, ya que al parecer localizar no puede leer archivos que no son legibles en todo el mundo. Vea esta respuesta de Plundra para más explicaciones.
El paquete findutils de homebrew sí habilita
gupdatedb
y losglocate
comandos que parecen superar algunas de las limitaciones de las utilidades incorporadas.fuente
mdutil
¿tiene sentido ver esto? Un caso de uso en el que puedo pensar es que puedo activar el reescaneo manualmentegupdatedb
con Spotlight, que no es tan fácil o tomaría más tiempo (también indexa el contenido de los archivos). ¿Hay otras ventajas?updatedb
Es más rápido para eso.glocate
parece no tener problemas para indexar los archivos del sistema, mientras que encuentromdfind
ignora ~ / Library y otros archivos del sistema. Definitivamente encuentro que consigo más golpes conglocate
másmdfind
en la mayoría de las circunstancias. YMMV.sudo gupdatedb
, luego guardé laglocate Radium
salida. Luego corrígupdatedb
y dijo:/.Trashes: Permission denied
lo mismo para algunas otras carpetas. ¡Comparé la salida para ambos y fue lo mismo! Extraño ...sudo gupdatedb
(ejecutándolo como root), luego siguió más tarde ejecutándosegupdatedb
como un usuario normal que no tendría acceso a los archivos a los que tendría acceso el usuario root, lo que significa que obtendría permiso denegado errores. Si desea una base de datos completa de nombres de archivo para todo su sistema, siga ejecutándola como root. Esto expone sus archivos a otros usuarios en el sistema que pueden usar elglocate
comando. Pero si usted es el único usuario, eso debería estar bien.Si desea buscar en la misma base de datos que usa Spotlight, puede usar el
mdfind
comando como alternativa (aunque no como un reemplazo exacto) paralocate
:fuente