Come faccio a ottenere mlocate per indicizzare solo determinate directory?

18

Mi piacerebbe utilizzare mlocate sul mio server Ubuntu, ma solo per indicizzare determinate directory (ad esempio /home e /data , ma non tutto sotto / ). Tuttavia, la configurazione standard di mlocate funziona in modo opposto; specifichi i percorsi che vuoi rimuovere (con PRUNE_PATHS ).

C'è un modo semplice per raggiungere questo obiettivo o qualsiasi utilità simile che farà ciò che voglio? (nota: dovrebbe mantenere un indice come mlocate , quindi find non è accettabile, ad esempio) Grazie.

    
posta Andrew Ferrier 06.07.2012 - 15:31

3 risposte

12

Puoi usare l'opzione -U (--database-root PATH)

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

-o scrive sul file di output

-l 0 rende possibile leggerlo, altrimenti è accessibile solo per locate

Quindi puoi usarlo come:

locate -d /home/user/databasefile Dylan

-d imposta il databasepath

Per utilizzare mlocate con più di una directory root, è sufficiente creare due file di database e utilizzare locate con due opzioni di databasepath come questa:

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

Per riassumere e rispondere alla domanda in modo più specifico:

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
    
risposta data Janghou 10.12.2013 - 13:44
17

Modifica il file /etc/updatedb.conf

Imposta PRUNEPATHS con le directory che NON vuoi cercare

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

PRUNEPATHS : un elenco separato da spazi bianchi di nomi di percorsi di directory che non dovrebbero essere scansionati da updatedb. Ogni nome di percorso deve essere esattamente nella forma in cui la directory verrà segnalata da locate. Per impostazione predefinita, nessun percorso viene saltato.

Si noti che tutte le informazioni di configurazione di cui sopra possono anche essere modificate o aggiornate tramite le opzioni della riga di comando all'utility updatedb .

    
risposta data LnxSlck 06.07.2012 - 15:38
1

Ho trovato qualcos'altro che potresti provare:

  1. QuickSearch - "Quindi il mio SearchTool usa un modo diverso: usa il comando 'ls' per elencare il contenuto della cartella cercata, quindi esegue la ricerca su quella uscita. In questo modo la velocità di ricerca è molto veloce (tranne che per la prima volta deve produrre l'output "ls"). "

Non sono molto sicuro dell'indicizzazione.

  1. Usa lo strumento tracker-gui
  2. Bella soluzione zoppa sudo find "posiziona qui le directory di ricerca" & gt; files.list grep 'filename' files.list
risposta data LnxSlck 06.07.2012 - 16:16

Leggi altre domande sui tag