web-dev-qa-db-fra.com

Différence entre localiser et qui sous Linux

Quelle est la différence entre locate et which sous Linux?

Pourquoi quand j'utilise locate mentor énumère-t-il tout le mentor mais quand j'ai utilisé which mentor Cela dit "aucun mentor dans ..." - Qu'est-ce que cela signifie?

27
Naddy

Quelle est la différence entre locate et which?

locate utilise une base de données précédemment construite pour localiser le fichier.

locate lit une ou plusieurs bases de données préparées par updatedb (8) et écrit les noms de fichiers correspondant au moins l'un des modèles à la sortie standard, une par ligne.

Source localiser (1) - page homme Linux

updatedb crée ou met à jour une base de données utilisée par locate (1). Si la base de données existe déjà, ses données sont réutilisées pour éviter les répertoires reliées qui n'ont pas changé.

updatedb est généralement exécuté quotidiennement par cron (8) pour mettre à jour la base de données par défaut (/var/lib/mlocate/mlocate.db)

Source pdatedB (8) - Page Linux Man


which recherche un fichier exécutable en la recherchant dans les répertoires de la variable de l'environnement PATH.

which prend un ou plusieurs arguments. Pour chacun de ses arguments, il imprime stdout le chemin complet des exécutables qui auraient été exécutés lorsque cet argument avait été entré à l'invite de Shell. Cela fait cela en recherchant un exécutable ou un script dans les répertoires énumérés dans la variable d'environnement PATH.

en utilisant le même algorithme que bash (1).

Source qui (1) - page homme Linux


locate mentor énumère le mentor, mais which mentor dit "aucun mentor in ..."

Qu'est-ce que cela signifie?

Vous avez des fichiers nommés mentor qui se trouvent dans la base de données locate.

Vous n'avez pas de fichier exécutable ou de script nommé mentor dans votre PATH.

45
DavidPostill

which est de localiser une commande (which renvoie un nom de chemin des fichiers/liens qui seraient exécutés dans l'environnement actuel)

locate est de trouver des fichiers par nom (locate lit une ou plusieurs bases de données préparées par updatedb et écrit des noms de fichiers correspondant au moins l'un des modèles de sortie autonome, une par ligne )

11
manjesh23