findrecherches dans le système réel. Est plus lent mais toujours à jour et a plus d'options (taille, temps de modification, ...)
locateutilise une base de données précédemment construite (commande updatedb). C'est beaucoup plus rapide, mais utilise une base de données «plus ancienne» et ne recherche que les noms ou des parties d’entre eux.
Dans tous les cas, man findet man locatevous aidera plus loin.
Les commandes locateet findtrouveront un fichier, mais leur fonctionnement sera très différent.
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 répertorie 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 avec locateest que si vous venez de créer un fichier que vous souhaitez maintenant rechercher, la localisation ne fonctionnera pas car la base de données slocate n’est pas à jour. Pour résoudre ce problème, vous pouvez utiliser updatedbpour mettre à jour la base de données slocate . Ré-exécuter locateva maintenant trouver le fichier nouvellement créé. Ainsi, de nombreux administrateurs système Linux utilisent un crontravail pour mettre à jour régulièrement la base de données slocate .
find fonctionnera dans un mode en ligne / "en temps réel".
En fait, il va parcourir tous les répertoires pour trouver le fichier spécifié et examiner chaque fichier un par un. Par conséquent, cela nécessite beaucoup d'appels d'E / S.
Donc, selon la nature, il est clair que la localisation est plus rapide que la recherche, mais que la recherche est en temps réel.
J'espère que cela aidera à clarifier l'idée. Bonne chance. :)
locate regarde simplement sa base de données et rapporte 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é.
Une alternative à find est la commande localize. Cette commande est souvent plus rapide et permet de rechercher facilement 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 le localiser est plus rapide que le trouver, car elle repose 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 avec 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 souhaitez rechercher des fichiers récemment acquis ou créés.
Réponses:
find
recherches dans le système réel. Est plus lent mais toujours à jour et a plus d'options (taille, temps de modification, ...)locate
utilise une base de données précédemment construite (commandeupdatedb
). C'est beaucoup plus rapide, mais utilise une base de données «plus ancienne» et ne recherche que les noms ou des parties d’entre eux.Dans tous les cas,
man find
etman locate
vous aidera plus loin.la source
updatedb
faire à peu près quelque chose commefind / -type f | gzip > locate.gz
.Les commandes
locate
etfind
trouveront un fichier, mais leur fonctionnement sera très différent.locate
fonctionnera en mode hors ligne:locate
, il utilisera cette base de données pour rechercher un fichier particulier. Le problème aveclocate
est que si vous venez de créer un fichier que vous souhaitez maintenant rechercher, la localisation ne fonctionnera pas car la base de données slocate n’est pas à jour. Pour résoudre ce problème, vous pouvez utiliserupdatedb
pour mettre à jour la base de données slocate . Ré-exécuterlocate
va maintenant trouver le fichier nouvellement créé. Ainsi, de nombreux administrateurs système Linux utilisent uncron
travail pour mettre à jour régulièrement la base de données slocate .find
fonctionnera dans un mode en ligne / "en temps réel".Donc, selon la nature, il est clair que la localisation est plus rapide que la recherche, mais que la recherche est en temps réel.
J'espère que cela aidera à clarifier l'idée. Bonne chance. :)
la source
locate
regarde simplement sa base de données et rapporte 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é.la source
Une alternative à find est la commande localize. Cette commande est souvent plus rapide et permet de rechercher facilement l’ensemble du système de fichiers. Vous pouvez installer la commande avec apt-get:
La raison pour laquelle le localiser est plus rapide que le trouver, car elle repose 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 avec un script cron, mais vous pouvez la mettre à jour manuellement en tapant:
Exécutez cette commande maintenant. N'oubliez pas que la base de données doit toujours être à jour si vous souhaitez rechercher des fichiers récemment acquis ou créés.
la source