51 votes

Quelle est la différence entre "locate" et "find" dans Linux ?

Pourquoi y a-t-il deux commandes si semblables dans Linux ? et normalement quelles sont les circonstances pour utiliser chacune d'entre elles ?

55voto

eumiro Points 923

find dans le système réel. Il est plus lent mais toujours à jour et dispose de plus d'options (taille, temps de modification,...).

locate utilise une base de données préalablement construite (commande updatedb ). Il est beaucoup plus rapide, mais il utilise une base de données plus ancienne et ne recherche que des noms ou des parties de noms.

En tout état de cause, man find y man locate vous aidera davantage.

5voto

kazi Tanvir Ahsan Points 141

Les deux locate y find trouveront un fichier, mais elles fonctionnent de manière très différente.

locate fonctionnera en mode hors ligne :

  • Pour une explication simple, la base de données d'indexation de fichiers du système Unix appelée slocate énumère l'emplacement de tous les fichiers livrés avec le système Unix. Lorsque vous exécutez locate il utilisera cette base de données pour rechercher un fichier particulier. Le problème avec locate c'est si vous venez de créer un fichier que vous souhaitez rechercher, localiser ne fonctionnera pas parce que le slocate n'est pas à jour. Pour résoudre ce problème, vous pouvez utiliser updatedb pour mettre à jour le slocate base de données. Exécution locate retrouvera le fichier nouvellement créé. C'est pourquoi de nombreux administrateurs de systèmes Linux utilisent un cron de mettre régulièrement à jour le slocate base de données.

find fonctionnera en ligne/"en temps réel".

  • Il va en effet chercher dans tous les répertoires le fichier spécifié et examine chaque fichier un par un. Par conséquent, il nécessite de nombreux appels d'E/S.

Sur la base de la nature, il est donc clair que localiser est plus rapide que trouver, mais que trouver est en temps réel.

J'espère que cela aidera à clarifier l'idée. Tous mes vœux de réussite :)

2voto

anchal Points 21

locate consulte simplement sa base de données et indique l'emplacement du fichier.

find n'utilise pas de base de données, il parcourt tous les répertoires et leurs sous-répertoires et recherche les fichiers correspondant au critère donné.

0voto

m-tech Points 178

La commande locate est une alternative à l'utilisation de find. Cette commande est souvent plus rapide et permet de rechercher facilement dans l'ensemble du système de fichiers. Vous pouvez installer la commande avec apt-get :

sudo apt-get update
sudo apt-get install mlocate

La raison pour laquelle locate est plus rapide que find est qu'il s'appuie sur une base de données des fichiers du système de fichiers. La base de données est généralement mise à jour une fois par jour à l'aide d'un script cron, mais vous pouvez la mettre à jour manuellement en tapant :

sudo updatedb

Exécutez cette commande maintenant. N'oubliez pas que la base de données doit toujours être à jour si vous voulez trouver des fichiers récemment acquis ou créés.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X