¿Cómo puedo obtener mlocate solo para indexar ciertos directorios?

18

Me gustaría utilizar ubicar en mi servidor Ubuntu, pero solo para indexar ciertos directorios (por ejemplo, /home y /data , pero no todo bajo / ). Sin embargo, la configuración estándar de mlocate funciona de la manera opuesta; especifica las rutas que desea eliminar (con PRUNE_PATHS ).

¿Hay alguna manera fácil de lograr esto o una utilidad similar que haga lo que quiero? (Nota: debe mantener un índice como mlocate , por lo que find no es aceptable, por ejemplo) Gracias.

    
pregunta Andrew Ferrier 06.07.2012 - 13:31

3 respuestas

12

Puede usar la opción -U (--database-root PATH)

updatedb -l 0 -U /home/user/music -o /home/user/databasefile

-o escribe en el archivo de salida

-l 0 hace que puedas leerlo, de lo contrario solo es accesible para localizar

Luego, puede usarlo como sigue:

locate -d /home/user/databasefile Dylan

-d establece el Databasepath

Para usar mlocate con más de un directorio raíz, simplemente cree dos archivos de base de datos, y use locate con las dos opciones de este último:

locate -d /home/user/dbfile1 -d /home/user/dbfile2 searchstring

Para resumir y responder la pregunta más específica:

updatedb -l 0 -U /home -o /home/user/home_dbfile
updatedb -l 0 -U /data -o /home/user/data_dbfile
locate -d /home/user/home_dbfile -d /home/user/data_dbfile Dylan
    
respondido por el Janghou 10.12.2013 - 12:44
17

Edite el archivo /etc/updatedb.conf

Configure PRUNEPATHS con los directorios que NO desea buscar

PRUNEPATHS="/tmp /var/spool /media"

PRUNEPATHS : una lista de nombres de ruta separados por espacios en blanco de directorios que no deben ser escaneados por updatedb. Cada nombre de ruta debe estar exactamente en la forma en que el directorio sería informado por locate. De manera predeterminada, no se omiten rutas.

Tenga en cuenta que toda la información de configuración anterior también se puede cambiar o actualizar a través de las opciones de línea de comando a la utilidad updatedb .

    
respondido por el LnxSlck 06.07.2012 - 13:38
1

Encontré algo más que podrías probar:

  1. QuickSearch - "Así que mi SearchTool usa una forma diferente: usa el comando 'ls' para mostrar el contenido de la carpeta buscada, luego realiza la búsqueda en esa salida. De esta manera la velocidad de búsqueda es muy rápida (excepto por primera vez tiene que hacer que la salida 'ls'). "

No estoy seguro acerca de la indexación.

  1. Use la herramienta tracker-gui
  2. Solución bastante débil sudo find "coloca tus directorios de búsqueda aquí" & gt; files.list grep 'filename' files.list
respondido por el LnxSlck 06.07.2012 - 14:16

Lea otras preguntas en las etiquetas