Buscar archivos desde la línea de comandos en Linux
Buscar archivos desde la consola de Linux es una tarea complicada si eres nuevo en sistemas Linux.
Para buscar archivos el comando más común es el comando find. Este comando es muy potente y permite una infinidad de opciones para buscar tipos de archivos en todo el sistema. Veamos algunos ejemplos de cómo funciona.
Para buscar todos los archivos dentro de un directorio con extensión .txt
find /home/miusuario -name "\*.txt"
Para encontar un archivo en todo el sistema, podemos buscarlo desde la carpeta raiz /
find / -name nombre_de_archivo
Si deseamos buscar un archivo por nombre de usuario podemos escribir:
find / -user nombreusuario
Esto mostrará todos los archivos de ese usuario a partir de la carpeta raiz / y todas sus subcarpetas.
Para buscar archivos vacíos (el . indica el directorio en el que nos encontramos):
find . -size 0c
Para buscar archivos de un tamaño en kilobytes:
find . -size 54k
El comando find permite buscar utilizando expresiones regulares. Esto nos ofrece una potencia considerable. Por ejemplo si deseamos buscar archivos del tipo archivo01_01.txt, archivo02_03.txt, etc, podemos utilizar:
find . -regex './archivo0[1-2]_0[1-3].\*'
Además podemos anidar todas las opciones para hacer consultas más complejas.
También existe otra forma de buscar archivos en el índice del sistema, el comando locate.
Este comando funciona de la siguiente forma:
locate nombredelarchivo
Y devolverá todas las rutas en donde aparece el nombre entrado, podemos consultar dentro de los resultados devueltos por ejemplo:
locate miarchivo | grep bin
Devolverá todos las rutas del sistema que contengan el nombre miarchivo y que además también aparezca el texto bin.
Para actualizar el índice del sistema podemos utilizar el comando updatedb
sudo updatedb
Es recomendable ejecutarlo antes de hacer un locate para añadir las rutas recientes, por ejemplo si acabamos de instalar un programa.