Categorías
General

[Como] Encontrar archivos en GNU/Linux

El comando find ubica archivos de muchas diferentes maneras. No ve el contenido, solamente nos ayuda a encontrar aquellos archivos que reúnen cierto criterio, such as nombre, tamaño, antigüedad y tipo.

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 {} ;

 

LowFatLinux.com

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *