En el siguiente artículo vamos a echar un vistazo a los comandos locate y find. Hoy en día, en Gnu/Linux podemos encontrar muchas maneras con las que buscar y ubicar archivos y directorios. Desde el entorno gráfico dispondremos de diferentes herramientas con las que obtener resultados de manera eficiente.
Pero en este caso, si eres usuario de terminal, posiblemente no quieras tener que salir de la comodidad de esta para poder localizar aquello que estás buscando. Es por esto que, sobre todo si acabas de llegar a Gnu/Linux, puede que no conozcas todavía la forma más rápida y sencilla de encontrar tus archivos y carpetas desde la terminal. En las siguientes líneas vamos a ver unos pocos ejemplos rápidos con los que llevar a cabo esta tarea.
Busca archivos desde la terminal con locate y find
Comando locate
El comando locate es posiblemente el primer recurso que debe utilizar un usuario porque es mucho más rápido que cualquier otra opción. La razón de esta velocidad es que este comando no está realmente buscando en nuestro disco duro local los archivos o directorios que necesitemos encontrar. Esta búsqueda la realiza como lecturas a través del archivo de base de datos mlocate.db, que contiene todas las rutas de archivos en nuestro sistema.
En caso de que no tengas disponible esta herramienta en tu sistema Ubuntu, vas a poder instalarla desde una terminal (Ctrl+Alt+T) escribiendo en ella:
sudo apt install locate
Preparando el comando locate
Antes de empezar debemos preparar el comando locate para el primer uso. Debemos actualizar la base de datos mlocate.db ejecutando en la terminal (Ctrl+Alt+T):
sudo updatedb
Ahora para usar locate, desde la terminal solo tendremos que escribir el comando seguido del nombre del archivo que estamos buscando. En este ejemplo, estoy buscando archivos que contengan la palabra ‘ubunlog‘ en su nombre:
locate ubunlog
Dado que locate lee un archivo de base de datos, los resultados pueden estar desactualizados. Esto podemos solucionarlo actualizando su base de datos de rutas de archivos, como hicimos con el primer comando que usamos antes de buscar.
Para más información acerca de esta herramienta, podemos recurrir a la ayuda escribiendo en la terminal:
locate -h
O también podemos utilizar las páginas de manual:
man locate
Comando find
El find es una utilidad de búsqueda mucho más poderosa pero también más lenta. Esto se debe a que realmente busca en nuestros discos los archivos y directorios. Es perfecta para cuando intentas localizar un archivo o un directorio pero no puedes recordar su nombre exacto.
Find puede buscar archivos que pertenecen a un determinado usuario o grupo de usuarios, archivos que fueron modificados o los que accedimos recientemente, archivos de un rango de tamaño específico, archivos ocultos, etc.
Si nos resulta posible, lo primero que debemos hacer al ejecutarlo es indicar que busque en un directorio específico. Esto acelerará el proceso de búsqueda, dependiendo del tamaño del directorio. Si sabes dónde puede estar el archivo, abre la terminal (Ctrl+Alt+T) y dirígete al directorio para ejecutar:
find . [nombre-archivo]
El punto le dice a find que busque en el directorio actual. Si quieres buscar en tu directorio home, reemplaza el punto con ‘~/‘. Si lo que quieres es buscar en todo su sistema de archivos, utiliza ‘/‘.
Algunos ejemplos
Digamos que queremos buscar un archivo en el directorio de documentos. Sabemos que el nombre del archivo contiene la palabra ‘php‘, pero no recordamos exactamente el nombre. Lo primero que habrá que hacer es navegar a la carpeta de documentos y después escribir el comando:
find . -name "*php*"
Esto nos dirá en este caso que hay un archivo pdf llamado ‘poo-php‘ en la carpeta Documentos. Ahora, si reemplazamos el parámetro ‘-name’ con ‘-iname’, podría obtener resultados sin tener en cuenta las letras exactas. Eso es algo que no encontraremos en locate.
find . -iname "*php*"
Si lo único que recordamos es que el archivo tiene menos de 5 MB de tamaño. El comando a utilizar sería:
find . -size -5M
En caso de saber que pesa más de 3MB, el comando a utilizar sería:
find . -size +3M
Find admite operadores booleanos para hacer que la búsqueda sea más exacta. Para este ejemplo, utilizaré un comando que combina los datos anteriores. Que el archivo tiene menos de 5 MB de tamaño y más de 3:
sudo find / -size -5M -and -size +3M
En caso de que lo único que sepamos es que accedimos al archivo hace cinco minutos, el comando a utilizar será:
sudo find ~/ -amin -5
Para obtener más información sobre find, abre una terminal y escribe:
man find
Estos son solo unos ejemplos básicos de cómo localizar archivos desde la terminal. Para obtener más información, no dejes de ver las páginas de manual de cada uno de ellos.