Quelle est la différence fondamentale entre locate
whereis
et which
commande.
La différence fondamentale que j'ai observée est qu'elle locate
localise tous les noms de fichiers associés dans l'ensemble du système de fichiers, tandis whereis
que les which
commandes et ne donnent que l'emplacement (système / adresse locale du fichier) de l'application installée. Quelle est la précision de mon observation?
Comment ces commandes sont-elles implémentées en interne. Pourquoi fonctionne-t-il locate
si rapidement par rapport à la recherche de tiret, alors qu'il locate
doit rechercher un nom de fichier particulier correspondant à la chaîne cible dans toute la hiérarchie du système de fichiers?
command-line
unity-dash
search
locate
Chinmaya B
la source
la source
type
? : Ptype
, veuillez élaborertype
est une autre commande qui semble (à mes yeux) faire une chose similaire à celles que vous avez mentionnées.type
commande. J'ai essayéman type
etinfo type
.Réponses:
which
trouve l'exécutable binaire du programme (s'il se trouve dans votre PATH).man which
explique plus clairement:whereis
recherche le binaire, la source et les fichiers de page de manuel d'un programme. Par exempleVous pouvez obtenir des détails supplémentaires en passant la sortie de ces commandes comme arguments à
ls -l
oufile
locate
trouve en effet tous les fichiers dont le modèle est spécifié n'importe où dans leur chemin. Vous pouvez lui dire de ne rechercher que les fichiers et répertoires dont les noms (plutôt que les chemins d'accès complets) incluent le modèle avec l'-b
option, qui est généralement ce que vous voulez, et donne une liste moins lourde.locate
est rapide car il utilise une base de données binaire qui est mise à jour périodiquement (une fois par jour, parcron
). Vous pouvez le mettre à jour vous-même pour vous assurer que les fichiers récemment ajoutés sont trouvés en exécutantsudo updatedb
locate
Encore une chose - peu importe si les fichiers existent toujours ou non, donc pour éviter de trouver des fichiers récemment supprimés, utilisez-e
. Souvent, je m'adresse aussiless
car la liste peut être longue. En général, je fais:Le fonctionnement du tableau de bord d'Unity est expliqué ici - il utilise Zeitgeist pour indexer les fichiers système et apprendre des modèles d'utilisation, et permet à d'autres applications d'utiliser ces données, il fait donc beaucoup plus de travail que
locate
.la source
locate
. Le tiret utilise un index complètement différent - plus lent car il fait plus de choses (j'ai édité ma réponse)sudo updatedb
votre commande est très utile je ne savais pas que même si j'utilisais -e régulièrement.Simplement
quelle commande recherche dans la liste des programmes répertoriés dans les paramètres PATH
La commande whereis recherche également les programmes qui ne sont pas présents dans le paramètre PATH
Recherche également les fichiers par nom de fichier mais ne recherche pas la structure de répertoires elle-même mais uniquement une base de données préparée par updatedb. À cause de cela, la localisation est plus rapide que find mais moins précise. Exemples:
la source