A veces necesitamos buscar un archivo por nombre y nunca recordamos la sintaxis correcta del comando "find" y terminamos desistiendo o utilizando algún bonito buscador con interfaz gráfica. Aunque en realidad, la sintaxis de "find" es muy simple sólo se necesita saber en qué directorio buscar y una parte del nombre del archivo.

Por ejemplo, para buscar archivos que contengan "pepe" en el nombre basta simplemente escribir:

find ./ -name *pepe*

Este comando encontrará todos los archivos que contengan exactamente "pepe" en alguna parte de su nombre. Se observa que utilizamos asterisco como comodín, para poder encontrar archivos que comiencen o terminen con "pepe" o que contengan "pepe" en alguna parte del nombre. Con ./ indicamos que busque en el directorio actual y sus subdirectorios recursivamente.

Este comando encontrará, por ejemplo, archivos de nombre:

pepe1.doc
3-pepemuleiro.txt
pepe
pepepe
fotos/Rpepe.png

Para que "find" encuentre cualquier aparición de "pepe", sin discriminar mayúsculas y minúsculas, debemos utilizar:

find ./ -iname *pepe*

Este comando encontrará, por ejemplo, archivos de nombre:

pepe1.doc
3-pepemuleiro.txt
pepe
PEpe3.dat
pepepe
fotos/Rpepe.png
5-PEPE.mp3
Pepe Muleiro.pdf

Para buscar en todo el sistema de archivos, debemos utilizar / (slash) como directorio raíz de la búsqueda:

find / -iname *pepe*

Para buscar archivos por extensión, utilizamos el comodín de la siguiente forma:

find / -name *.mp3

Para buscar archivos con nombres que contengan espacio se deben utilizar comillas simples o dobles:

find / -name "Documento 1*"
find / -name 'Documento 1*' 

Para no mostrar los errores por pantalla, por ejemplo para evitar los mensajes "Permission denied" cuando no se tiene acceso a un directorio, se debe redireccionar la standard error a /dev/null:

find / -name 'Documento 1*' 2>/dev/null

Espero que les sirva!


Tal vez pueda interesarte


Compartí este artículo