find recherches dans le système réel. Est plus lent mais toujours à jour et a plus d'options (taille, heure de modification,...)
locate utilise une base de données précédemment construite (commande updatedb ). Est beaucoup plus rapide, mais utilise une base de données « plus ancienne » et ne recherche que des noms ou des parties de ceux-ci.
Dans tous les cas, man find et man locate vous aidera davantage.
Le locate et find les commandes trouveront un fichier, mais elles fonctionnent de manière assez différente.
locate fonctionnera en mode hors connexion :
- Pour une explication simple, la base de données d'indexation de fichiers dans le système Unix appelée slocate listera les emplacements 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 aveclocateest si vous venez de créer un fichier que vous souhaitez maintenant rechercher, localisez ne fonctionnera pas car le slocate la base de données n'est pas à jour. Pour surmonter ce problème, vous pouvez utiliserupdatedbpour mettre à jour le slocate base de données. Exécution delocatetrouvera à nouveau le fichier nouvellement créé. Ainsi, de nombreux administrateurs système Linux utilisent uncrontâche de mettre à jour régulièrement le slocate base de données.
find fonctionnera en mode en ligne/"en temps réel".
- Il ira en fait chercher dans tous les répertoires pour trouver le fichier particulier spécifié et il examinera chaque fichier un par un. Par conséquent, cela nécessite beaucoup d'appels d'E/S.
Donc, sur la base de la nature, il est clair que la localisation est plus rapide que la recherche, mais la recherche est en temps réel.
J'espère que cela aidera à éclaircir l'idée. Tous mes vœux. :)