Buscar ficheros por su nombre con el comando find

El comando find realiza búsquedas de ficheros y directorios a partir de un determinado punto de búsqueda, es decir, indicaremos un punto de partida y buscará en ese directorio y sus distintos subdirectorios aquellos ficheros que cumplan con las condiciones que le indiquemos y, opcionalmente, realizará una acción sobre cada uno de ellos.

La estructura del comando find es:

find [directorio_de_partida] [expresión_de_búsqueda] [patrón_de_búsqueda] [acción_a_realizar]

Veamos un ejemplo sencillo:

find ~ -name imagen.png

Donde:

  • find es el comando que realiza la búsqueda
  • ~ indica el directorio donde empezará a realizar las búsquedas
  • -name indica que el nombre de los ficheros y directorios a buscar será siguiendo el patrón siguiente distinguiendo entre mayúsculas y minúsculas
  • imagen.png es el patrón de búsqueda.

En este ejemplo buscará todos los ficheros que se llamen imagen.png que se encuentren en el directorio home del usuario y en todos sus subdirectorios.

Ignorar mayúsculas y minúsculas en los nombres de fichero

Podemos sustituir el modificador -name por -iname, que ignora la diferenciación entre mayúsculas y minúsculas.

find ~ -iname imagen.png

Encontrará cualquier fichero con nombre imagen, IMAGEN, Imagen… y con extensión png, PNG, pNg, pNG, Png…

Buscar ficheros con expresiones regulares

Con find podemos usar expresiones regulares para extender el patrón a buscar.

Asterisco

Con el asterisco indicamos que puede haber cualquier carácter cualquier número de veces. Incluso cero veces:

find ~ -iname *.png

Encontrará todos los ficheros con extensión .png ignorando si esos caracteres estás escritos con mayúscula o minúscula.

Rango

Podemos buscar un rango de caracteres, como que empiece con cualquier letra:

find ~ -iname [a-z]*.png

Que empiece con cualquier número:

find ~ -iname [0-9]*.png

O que empiece con un carácter de los indicados en una lista, por ejemplo, las vocales:

find ~ -iname [aeiou]*.png

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.