Come posso ottenere mlocate per indicizzare solo determinate directory?


23

Vorrei usare mlocate sul mio server Ubuntu, ma solo per indicizzare determinate directory (es. /homeE /data, ma non tutto sotto /). Tuttavia, la configurazione standard di mlocate funziona in modo opposto; si specificano i percorsi che si desidera rimuovere (con PRUNE_PATHS).

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

Risposte:


16

È possibile utilizzare l'opzione -U (--database-root PATH)

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

-o scrive nel file di output

-l 0 ti permette di leggerlo, altrimenti è accessibile solo per individuare

Quindi puoi usarlo come:

locate -d /home/user/databasefile Dylan

-d imposta il databasepath

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

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

Per riassumere e rispondere alla domanda più specifica:

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

Voto, in quanto questa è una risposta parziale. Tuttavia, consente solo la whitelisting di un percorso. La mia domanda era specificamente su come autorizzare più di un percorso.
Andrew Ferrier,

1
Migliorata la risposta e per una gestione più semplice suggerisco di creare un alias
Janghou

buona risposta! Non mi ero reso conto che potevi cercare in due database in parallelo, grazie per il chiarimento. Segnerò questo accettato a meno che non arrivi una risposta migliore!
Andrew Ferrier,

È updatedb -l 0 -U /home/user/musicricorsivo? Non sembra essere nel mio caso
Gaia,

22

Modifica il file /etc/updatedb.conf

Configurare PRUNEPATHScon le directory che NON si desidera cercare

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

PRUNEPATHS: Un elenco separato da spazi di nomi di percorsi di directory che non devono essere scansionati da updatedb. Ogni nome di percorso deve essere esattamente nella forma in cui la directory verrebbe segnalata da Locate. Per impostazione predefinita, nessun percorso viene ignorato.

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'utilità updatedb.


No, è esattamente l'opposto di quello che voglio. Questo indicizzerà tutto tranne quelle directory.
Andrew Ferrier,

Puoi impostare PRUNEPATHS con qualsiasi cosa tranne le tue directory. In questo modo, scansionerà solo le tue directory.
LnxSlck,

OK, grazie per la modifica chiarificatrice. È un po 'poco pratico, perché quando aggiungo le sottodirectory insieme alle directory che voglio indicizzare, dovrei ricordare di aggiungerle a PRUNEPATHS. Tuttavia, funzionerebbe. Grazie per il suggerimento
Andrew Ferrier,

Sì, lo so, ma non riesco a trovare molte informazioni su Mlocate per farlo. Non puoi usare qualcosa come trovare?
LnxSlck,

No, ho molti dati, quindi è importante che siano indicizzati. Ho chiarito in questione.
Andrew Ferrier,

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 fa la ricerca su quell'output. In questo modo la velocità di ricerca è molto veloce (tranne per la prima volta che deve fare il 'ls' output). "

Non sono molto sicuro dell'indicizzazione.

  1. Usa tool tracker-gui
  2. Soluzione piuttosto scadente sudo find "inserisci qui le tue directory di ricerca"> files.list grep 'nomefile' files.list

Cerca di non aggiungere più risposte. Se necessario, modifica la risposta esistente e includi ulteriori informazioni. Grazie.
jokerdino

Sì, lo farò
LnxSlck
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.