locate

Hace casi un año me di a la tarea de limpiar y poner a punto todo lo relacionado con Python en mi equipo. Finalmente debería usarlo con propósitos profesionales de tiempo completo. Ya no proyectos ocasionales, académicos o experimentos personales.

Hace un año me encontraba participando por posiciones en empresas tecnológicas, realizando exámenes o pequeños proyectos. En más de una ocasión me topé con algunos problemas. Muchos de ellos podrían explicarse por algo que «se hubiera quedado cruzado». De hecho, a la fecha me ha pasado de forma relativamente frecuente. Nada raro, después de todo,   si consideramos que he venido haciendo innumerables instalaciones, desinstalaciones y reinstalaciones, tanto del mismo Python y sus paquetes, así como de varias versiones de éstos.

Dentro de estas actividades de limpieza, debí recurrir al comando locate(1), el cual verdaderamente resultó útil, pues me permitió ubicar elementos de algunas versiones de Python dejadas por los (scripts o programas) instaladores, desinstaladores o quizás alguno de los administradores de paquetes (pip, brew o MacPorts, conda) que he empleado.

Con más de 600GB usados en el disco duro, el correr algún programa que haga un recorrido por el file system, siempre despierta la  preocupación del «¿cuánto de tardará?» y uno no puede evitar recordar que el antivirus se tarda tres horas en revisar todo el disco. Claro que aquí no es la misma cantidad de trabajo, y hablamos de un enfoque distinto. locate(1) no barre el disco, hace uso de una base de datos previamente recopilada. Por lo que es bastante rápido y puede ser una alternativa a un find(1). Por ejemplo, localizando los elementos de una instalación de Python v3.6:


$ locate 3.6
/Applications/Xcode.app/Contents/Developer/usr/share/xcs/CouchDB/lib/erlang/lib/xmerl-1.3.6
/Applications/Xcode.app/Contents/Developer/usr/share/xcs/CouchDB/lib/erlang/lib/xmerl-1.3.6/ebin
...
/usr/local/bin/2to3-3.6
/usr/local/bin/easy_install-3.6
/usr/local/bin/idle3.6
/usr/local/bin/pip3.6
/usr/local/bin/pydoc3.6
/usr/local/bin/python3.6
/usr/local/bin/python3.6m
/usr/local/bin/python3.6m-config
...

Tras localizar lo que debía borrarse, noté que la actualización no era inmediata. En el caso del macOS, la actualización puede hacerse mediante el script locate.updatedb. Contrariamente a las preocupaciones del párrafo anterior, resultó bastante rápido.

$ time sudo ./locate.updatedb
real 21m50.600s
user 0m24.183s
sys 1m11.838s
$

Referencias

  1. Ravi Saive, «10 Useful ‘locate’ Command Practical Examples for Linux Newbies«, TecMint, web. Published: 2017.04.25; Visited: 2018.12.12. URL: https://www.tecmint.com/linux-locate-command-practical-examples/.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.