web-dev-qa-db-fra.com

Comment obtenir mlocate pour n'indexer que certains répertoires?

J'aimerais utiliser mlocate sur mon serveur Ubuntu, mais uniquement pour indexer certains répertoires (par exemple, /home et /data, mais pas tout ce qui se trouve sous /). Cependant, la configuration standard de mlocate fonctionne dans le sens opposé. vous spécifiez les chemins que vous souhaitez supprimer (avec Prune_PATHS).

Existe-t-il un moyen simple de réaliser cela, ou un utilitaire similaire qui fera ce que je veux? (Remarque: il devrait conserver un index du type mlocate; par exemple, find n'est pas acceptable, par exemple). Merci.

21
Andrew Ferrier

Vous pouvez utiliser l'option --Database-root PATH)

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

-o écrit dans le fichier de sortie

-l 0 fait que vous pouvez le lire, sinon il n'est accessible que pour localiser

Ensuite, vous pouvez l'utiliser comme:

locate -d /home/user/databasefile Dylan

-d définit le databasepath

Pour utiliser mlocate avec plusieurs répertoires racine, créez simplement deux fichiers de base de données et utilisez l'option de localisation avec deux types de base de données, comme ceci:

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

--- (Pour résumer et répondre à la question plus précise:

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
14
Janghou

Editez le fichier /etc/updatedb.conf

Configurez PRUNEPATHS avec les répertoires que vous NE voulez PAS rechercher

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

PRUNEPATHS: Une liste de noms de chemins d'accès aux répertoires, séparés par des espaces, ne doit pas être analysée par updatedb. Chaque nom de chemin doit être exactement sous la forme dans laquelle le répertoire serait signalé par loc. Par défaut, aucun chemin n'est ignoré.

Notez que toutes les informations de configuration ci-dessus peuvent également être modifiées ou mises à jour via les options de ligne de commande de l'utilitaire updatedb.

22
LnxSlck

J'ai trouvé autre chose à essayer:

  1. QuickSearch - "Mon outil de recherche utilise donc une méthode différente: il utilise la commande 'ls' pour répertorier le contenu du dossier recherché, puis effectue la recherche sur cette sortie. Ainsi, la vitesse de recherche est très rapide (sauf première fois, il doit générer la sortie 'ls'). "

Pas très sûr de l'indexation.

  1. Utiliser l'outil tracker-gui
  2. Sudo find trouve que "placez vos répertoires de recherche ici"> files.list grep 'filename' files.list
1
LnxSlck