Comment se fait la unix commande locate affiche toujours les fichiers / dossiers qui ne sont pas plus là?

StackOverflow https://stackoverflow.com/questions/1060919

Question

J'ai récemment déménagé toute ma zone de développement web local sur à l'utilisation des choses MacPorts, plutôt que d'utiliser MAMP sur mon Mac. Je reçois en Python / Django et n'a pas vraiment besoin MAMP plus.

La chose est, je l'ai désinstallé MAMP du dossier Applications, avec le fichier de préférences aussi, mais comment se fait quand je lance le « localiser MAMP » commande dans le terminal, il montre encore tous mes / Applications / MAMP / stuff comme si elle est tout ce qu'il ya encore? Et quand je cd 'dans / Applications / MAMP / il n'existe pas?

Quelque chose à voir locate être une sorte d'index système de recherche, d'où les choses ces vieux chemins de fichiers sont mises en cache? S'il vous plaît expliquer pourquoi et comment faire le tri afin qu'ils ne se présentent plus.

Était-ce utile?

La solution

Vous avez la bonne idée: une base de données utilise locate appelée « locatedb ». Il est normalement mis à jour par des emplois Cron du système (pas sûr sur OS X); vous pouvez forcer une mise à jour avec la commande updatedb. Voir http://linux-sxs.org/utilities/updatedb.html entre autres .


En outre, si vous ne pas trouver des fichiers que vous espérez, noter que cette mise en garde importante de la section BUGS de Mac OS X » locate (1) homme :

The locate database is typically built by user ''nobody'' and the locate.updatedb(8) utility skips directories which are not readable for user ''nobody'', group ''nobody'', or world. For example, if your HOME directory is not world-readable, none of your files are in the database.

Autres conseils

Les autres réponses sont correctes au sujet de mettre à jour la besoin base de données locate. J'ai cet alias de mettre à jour mon localiser DB:

alias update_locate='sudo /usr/libexec/locate.updatedb'

Je ne l'utilise pas vraiment trouver tout ce que beaucoup plus maintenant que je l'ai trouvé mdfind . Il utilise l'index de fichiers de projecteur qui OSX est beaucoup mieux à maintenir à jour par rapport à la locatedb. Il a également tout à fait un peu plus de puissance dans ce qu'il peut rechercher de la ligne de commande.

En effet, la commande locate recherches dans un index, c'est pourquoi il est assez rapide. L'indice est généré par le updatedb commande, qui est généralement exécuté comme de nuit ou travail hebdomadaire.

Donc, pour le mettre à jour manuellement, exécutez updatedb .

Selon la page de manuel, sa base de données est mis à jour une fois par semaine:

NAME
     locate.updatedb -- update locate database

SYNOPSIS
     /usr/libexec/locate.updatedb

DESCRIPTION
     The locate.updatedb utility updates the database used by locate(1).  It is typically run once a week by
     the /etc/periodic/weekly/310.locate script.

Jetez un oeil à la page de manuel localiser

http://unixhelp.ed.ac.uk/CGI / man-cgi? + 1 localiser

Vous verrez que locate recherche une base de données, pas votre système de fichiers réel. Vous pouvez mettre à jour cette base de données en utilisant la commande updatedb.

En outre, étant donné qu'il est une base de données, à moins que vous ne mettez à jour régulièrement, recherchez wouln't trouver les fichiers qui se trouvent dans votre système de fichiers qui arn't dans la base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top