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 aveclocate
est 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 utiliserupdatedb
pour mettre à jour le slocate base de données. Exécution delocate
trouvera à nouveau le fichier nouvellement créé. Ainsi, de nombreux administrateurs système Linux utilisent uncron
tâ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. :)