Búsquedas en Linux por consola

En consola tenemos algunas alternativas para buscar archivos: find y locate.

El comando find nos permite buscar archivos que contengan en su nombre la cadena pasada como parámetro en una ruta determinada. Por ejemplo, para buscar todos los archivos mp3 en una determinada carpeta:

find /media/musica/ -name "*.mp3"



Usamos * como “comodín” para indicarle al comando que busque todos los archivos que “empiecen con cualquier cosa” y terminen con el texto *.mp3. El comando tiene más opciones, que pueden averiguar con man find

El comando locate también nos permite realizar búsquedas, pero la diferencia es que mantiene una base de datos con todos los archivos del sistema, por lo que la búsqueda se realiza casi al instante.

locate "*.mp3"



Si es que no tenemos permisos de lectura en un directorio, no buscará ahi. Para poder buscar en todos los directorios, tenemos que lanzarlo con sudo delante.

Es importante indicar que si un archivo es reciente, no se encontrará en la base de datos (por lo que el comando no arrojará resultados). Para actualizar la base de datos:

sudo updatedb



Esto tomará algún tiempo, por lo que es recomendable usar locate para archivos que sepamos que existen antes de la última actualización o programar una tarea para que periódicamente ejecute updatedb