La forma general del comando find es
find <punto de partida> <criterio de búsqueda> <acción>
El punto de partida es el nombre del directorio donde find debería comenzar a buscar archivos. El comando find examina todos los archivos en este directorio (y cualquier subdirectorio) para ver si cumplen el criterio de búsqueda especificado. Si alguno lo hace, find realiza la acción en cada archivo hallado. A continuación detallamos algunas de las opciones de búsqueda más útiles:
-name patrón Encuentra archivos con nombres que coincidan el patrón.
–size [+|-] n Encuentra archivos mayores o menores de determinado tamaño.
-atime [+|-] n Encuentra archivos accedidos antes o después de cierta fecha.
-mtime [+|-] n Encuentra archivos modificados antes o después de cierta fecha.
-type tipodearchivo Encuentra solamente archivos regulares o directorios.
Y aquí están las acciones que pueden ser aplicadas a los archivos encontrados:
-print Muestra los nombres de los archivos hallados.
-ls Muestra los nombres, fechas, tamaños, etc. de los archivos hallados.
-exec comando Ejecuta un comando con el nombre de archivo como entrada.
-ok comando Lo mismo que -exec, pero solicita confirmación.
Todo esto puede parecer al confuso de modo que aquí están algunos ejemplos. Para encontrar archivos (empezando en el directorio actual) cuyos nombres terminen en .data y mostrar sus nombres, prueben esto:
find . -name ‘*.data’ -print
empresa.data
donación.data
títulos.data
ordenado.data
palabras.data
Para encontrar archivos mayores a 40K y mostrar sus nombres y detalles (usar un signo menos en lugar de un signo más para encontrar archivos más pequeños que determinado tamaño), emplear este comando:
find . -size +40k -ls
-rw-rw-r– daniel users 56720 Jan 16 12:42 archivo grande
-rw-rw-r– daniel users 415206 Feb 27 21:37 archivo más grande
-rw-rw-r– daniel users 315428 Jan 07 05:23 archivo inmenso
Para encontrar archivos que finalicen con .dat que sean menores a 100K, ingresaremos
find . -name *.txt -size -100k -ls
-rw-rw-r– daniel users 26720 Feb 06 23:52 recetas.txt
-rw-rw-r– daniel users 506 Feb 18 18:45 poema.txt
Para encontrar archivos que no hayan sido accedidos por más de 30 días y eliminarlos (enviando sus nombres al comando rm), ingresaremos
find . -atime +30 -exec rm {} ;
Para encontrar directorios (comenzando en el directorio junk) y eliminarlos condicionalmente (enviando sus nombres al comando rmdir), ingresaremos
find junk -type d -ok rmdir {} ;