El uso del comando find es útil para encontrar buscar archivos ya sea por tamaño, fecha la última modificación y por supuesto por nombre.

Sintáxis básica

La sintáxis básica del comando find es:

$ find ruta ... [expresiones]

El parámetro ruta indica la ubicación (path) donde será realizada la búsqueda, por ejemplo . en el mismo directorio, .. en eldirectorio superior / en el directorio raíz, etc.

En las expresiones se pueden combinar algunas de las que describimos a continuación.

Encontrar un archivo por nombre (-name)

Uno de los usos más comunes del comando find es encontrar archivos por nombre. En este tipo de búsqueda se pueden utilizar los caracteres comodines * y ?, el primerom reemplaza una cadena de búsqueda y el segundo un caracter.

$ find . -name *.sql

En caso que haya un archivo que cumpla con las opciones en el mismo directorio es probable que regrese un error de un parámetro inválido. Para resolverlo se podrán utilizar comillas ("") en el parámetro de búsqueda.

$ find . -name "*.sql"

Encontrar un archivo por tamaño (-size)

Para encontrar un archivo que cumpla con alguna condición de tamaño se utiliza la expresión -size, la cual de manera predeterminada busca por la cantidad de blocks de un archivo (1 block = 512 bytes) pero se puede agregar el parametro c después de la cantidad para que el tamaño sea considerado en bytes. Su uso es de la siguiente forma:

$ find -size +20000c

Esta instrucción encuentra los archivos mayores a 20,000 bytes, también se pude utilizar -20000c para encontrar lo archivos menores a 20,000 bytes.

Encontrar un archivo por fecha de modificación o creación (-mtime, -ctime)

Las opciones -mtime y -ctime reciben el parámetro en días que pueden ser +n para indicar mayor a n días, n exactamente n días y -n para hace menos de n días. Por ejemplo para encontrar los archivos creados hace menos de 2 días se utiliza el siguiente comando:

$ find . -ctime -2

Utilizar varias expresiones

Se pueden encontrar archivos pidiendo más de una expresión al comando find. Por ejemplo para encontrar los archivos con extension txt que hayan sido modificadoshace menos de 3 días se utilizan las siguientes expresiones:

$ find . -name "*.txt" -mtime -3