¿Cómo es que el comando UNIX localizar todavía muestra los archivos / carpetas que no están más allí?
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.
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.