Si je veux utiliser la commande locate
sur une machine Linux, je lance généralement d'abord sudo updatedb
pour mettre à jour la base de données. Je peux exécuter la commande locate
sur OS X 10.5 mais je ne trouve pas updatedb
. Quel est l'équivalent de updatedb pour Mac?
Réponses
Trop de publicités?C'est locate.updatedb
sur Mac.
sudo /usr/libexec/locate.updatedb
Pour plus d'informations, consultez la page man de locate.updatedb.
Personnellement, je viens d'installer findutils (utilisez MacPorts ou Homebrew).
Ensuite, vous avez GNU locate et updatedb.
updatedb ne fonctionnera pas sans sudo.
Personnellement, je préfère avoir un locatedb par utilisateur; si vous utilisez sudo, les autres utilisateurs sauront les noms/emplacements de tous vos fichiers.
J'ai une tâche cron qui s'exécute :
updatedb --localpaths='/Users/grogs' --output='/Users/grogs/tmp/locatedb'
Et dans mon .zshrc .bashrc/.bashprofile :
export LOCATE_PATH="~/tmp/locatedb"
Si vous exécutez la commande locate sans avoir mis à jour la base de données au préalable, vous avez une chance de voir la façon recommandée par le système d'exploitation à travers sa sortie.
AVERTISSEMENT : La base de données locate (/var/db/locate.database) n'existe pas.
Pour créer la base de données, exécutez la commande suivante :
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
Veuillez noter que la base de données peut prendre un certain temps pour être générée ; une fois la base de données créée, ce message n'apparaîtra plus.
0 votes
Well, upatedb et locate sont des fonctionnalités intéressantes mais elles nécessitent de lancer updatedb régulièrement (soit updatedb se lance régulièrement et ralentit votre système à des moments inopportuns, soit locate montre des références à des fichiers qui ne sont plus là). Je pense donc qu'au lieu de mettre en place locate/updatedb, il serait peut-être préférable de se familiariser avec (le bien plus puissant) find.
16 votes
Alors que find est utile pour beaucoup de choses, il doit passer par le système de fichiers à chaque fois. Si vous pouvez restreindre les endroits où vous cherchez, c'est bien. L'avantage de locate est qu'il garde sa propre base de données, et donc n'a pas besoin de chercher à chaque fois. C'est particulièrement important avec des systèmes de fichiers volumineux et/ou distants. Je pense que chacun a sa place.
4 votes
Lors de l'exécution initiale de
locate
sur un OS X, il vous dit d'exécutersudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
.19 votes
Selon vos besoins, il peut être plus pratique d'utiliser l'interface en ligne de commande de Spotlight,
mdfind
, car la base de données de Spotlight est presque toujours à jour et offre beaucoup plus de fonctionnalités que locate.man mdfind
1 votes
La réponse à cette question se trouve dans
man locate
:) La réponse est dansman locate
depuis au moins le 17 août 2006.