Hacemos una verificación completa cada enunciados en nuestra página web con el objetivo de mostrarte siempre la información con la mayor veracidad y actualizada.
Solución:
El comando es:
sudo updatedb
Ver man updatedb
para más detalles.
En OSX esto es: sudo /usr/libexec/locate.updatedb
Que se puede vincular con: sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedb
Parece una tontería tener que hacer un enlace simbólico para un comando estándar de Unix, pero ahí está.
Mientras que la respuesta:
sudo updatedb
es técnicamente correcto, casi nunca es una buena idea ejecutar updatedb
en una línea de comando por sí mismo, si también hay un trabajo cron instalado. Dependiendo del sabor de Unix, el cronjob contiene disposiciones de bloqueo y cualquier cantidad de configuración que no esté cubierta por el independiente. updatedb
mando.
Si la base de datos de localización necesita actualizarse con frecuencia, definitivamente vale la pena el esfuerzo de determinar el trabajo cron adecuado para un host específico y ejecutarlo manualmente.
Dependiendo del administrador, el cronjob para updatedb
puede estar oculto en varios lugares. Entonces, un simple intento de fuerza bruta para encontrar el trabajo cron sería:
( sudo crontab -l > /tmp/crontab.root;
( echo /tmp/crontab.root; ls -1d /etc/*cron* /etc/*cron*/* )
| tr 'n' ' '
| xargs -0 -r -e grep -nH -e updatedb;
rm -f /tmp/crontab.root
) 2>/dev/null
que muestra el siguiente resultado en uno de mis sistemas Ubuntu:
/etc/cron.daily/mlocate:5:[ -x /usr/bin/updatedb.mlocate ] || exit 0
/etc/cron.daily/mlocate:21:flock --nonblock /run/mlocate.daily.lock $IONICE /usr/bin/updatedb.mlocate
Por lo tanto, el comando correcto para actualizar la base de datos de localización en este caso es
sudo /etc/cron.daily/mlocate
Un enfoque más sistemático consiste en determinar el paquete que proporciona locate
y updatedb
.
Por ejemplo, en un sistema operativo con paquete apt/dpkg, puede encontrar qué versión de localizar está instalada con:
dpkg -S locate | grep /bin/
En mi caso es:
mlocate: /usr/bin/updatedb.mlocate
Para ver qué trabajo cron, si es que hay alguno, es el responsable, ejecute:
dpkg -L mlocate | grep cron
Que en mi caso muestra:
/etc/cron.daily
/etc/cron.daily/mlocate
Para actualizar la base de datos, ejecute el trabajo cron como root:
sudo /etc/cron.daily/mlocate
Si no hay cronjob, y updatedb por sí solo no funciona, intente encontrar su versión instalada con:
dpkg -L mlocate | grep /bin/
que devuelve:
/usr/bin/mlocate
/usr/bin/updatedb.mlocate
NB: si rechaza esta respuesta, sea tan amable y hágame saber por qué la respuesta del aficionado se considera mejor.
Te mostramos reseñas y calificaciones
Si para ti ha sido de ayuda nuestro post, te agradeceríamos que lo compartas con el resto desarrolladores y nos ayudes a extender nuestra información.