localizar y actualizadob - archivos no encontrados

8

corrí

sudo /usr/libexec/locate.updatedb

entonces

locate Radium3

pero no devuelve nada!

pero

$ ls ~/Library/Containers/com.catpigstudios.Radium3/
Container.plist Data

Entonces, ¿por qué no locateve todos los archivos?

¿Estoy usando este comando correctamente en OS X?

davidhq
fuente

Respuestas:

5

Tratar:

sudo /usr/libexec/locate.updatedb

Y mira config:

/etc/locate.rc el archivo de configuración

Editado:

Publicar aquí salida:

echo $LOCATE_CONFIG

Y:

cat /etc/locate.rc

Y:

echo $0

Actualizar:

https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man1/locate.1.html#//apple_ref/doc/man/1/locate

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

mdfind -name text
usuario3439968
fuente
Descomenté #SEARCHPATHS="/"en la configuración, no ayudó. -vla opción no parece producir ningún resultado adicional: /
davidhq
Dar información adicional para mí por favor. En la respuesta "Editado" sección.
user3439968
1
$ 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.

VogonPoetLaureate
fuente
¡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:

mdfind Radius3
amablemente
fuente