¿Cómo es que el comando UNIX localizar todavía muestra los archivos / carpetas que no están más allí?

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

Pregunta

Hace poco se ha llevado mi área de desarrollo web local entera a usar MacPorts cosas, en lugar de utilizar MAMP en mi Mac. He estado recibiendo en Python / Django y realmente no necesita MAMP más.

La cosa es, he desinstalado MAMP desde la carpeta Aplicaciones, con el archivo también las preferencias, pero ¿cómo es que cuando ejecuto el 'localizar MAMP' comando en el terminal sigue mostrando todos mis / Aplicaciones / MAMP / cosas como si fuera todavía allí? Y cuando estoy cd 'en / Aplicaciones / MAMP / no existe?

Algo que ver con localizar ser una especie de sistema de búsqueda de índice, por lo tanto, las cosas se almacenan en caché estas antiguas rutas de los archivos? Por favor, explique por qué y cómo solucionarlo para que no se muestran más.

¿Fue útil?

Solución

Usted tiene la idea correcta: locate utiliza una base de datos denominada 'locatedb'. Normalmente se pone al día por los trabajos de cron del sistema (no estoy seguro, que en OS X); puede forzar una actualización con el comando updatedb. Ver http://linux-sxs.org/utilities/updatedb.html entre otros .


Además, si no buscar ficheros que usted espera, tenga en cuenta esta importante salvedad de la sección FALLOS de OSX' localizar (1) hombre de la página:

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.

Otros consejos

Las otras respuestas son correctas sobre la necesidad de actualizar la base de datos de localización. Tengo este alias actualizar mi localizar DB:

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

En realidad, yo no uso localizar todo lo que mucho más ahora que he encontrado mdfind . Se utiliza el índice de archivos punto de mira, que OSX es mucho mejor en mantener al día en comparación con el locatedb. También cuenta con un poco más de potencia en lo que puede buscar desde la línea de comandos.

De hecho, el localizar comando busca a través de un índice, es por eso que es bastante rápido. El índice se genera por el comando updatedb, que generalmente se ejecuta como una noche o el trabajo semanal.

Así que lo actualice manualmente, basta con ejecutar updatedb .

De acuerdo con la página del manual, su base de datos se actualiza una vez por semana:

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.

Tome un vistazo a la página de localice hombre

http://unixhelp.ed.ac.uk/CGI / cgi-hombre? localizar + 1

Se verá que localice búsquedas una base de datos, no su sistema de archivos real. Puede actualizar la base de datos utilizando el comando updatedb.

Además, dado que se trata de una base de datos, a menos que no actualiza con regularidad, localizar wouln't encontrar los archivos que se encuentran en el sistema de archivos que ar no en la base de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top