UNIX – Uso de comando FIND.-

Queremos encontrar todos los ficheros con extension .conf dentro de /etc:

find /etc -name '*.conf'

Lo cierto es que este tipo de búsquedas pueden resultar demasiado grandes, y listar muchísmos resultados, para ello podemos añadir criterios y acotar los resultados. Si por ejemplo quisieramos ver los logs ubicados dentro de /usr/local cuyo tamaño supere los 100Mb:

find /usr/local/ -name '*log' -a -size +100M

Y si quiseramos saber que ficheros de el directorio /var/log/ cuya extensión sea .bak no han sido modificados en 15 días:

find /var/log -name '*.bak'  -mtime +15

Si no quisieramos esos ficheros, solamente tenemos que borrarlos:

find /var/log -name '*.bak'  -mtime +15 -exec rm -f {} \;

La verdad es que la mayor parte de expresiones de find son bastante intuitivas, -mtime, -uid, -name, -size, etc. Pero es realmente interesante comentar “-exec”, pues nos va a ser de extrema utilidad para construir comandos potentes con find.

-exec nos va a permitir aplicar ciertas acciones a los ficheros encontrados con find, como en el ejemplo anterior, en el cual eliminabamos los ficheros que coincidian con ciertos criterios. Para ello tenemos que comprender el uso de ‘{}’ y \;

‘{}’ será cada uno de los ficheros encontrados, y \; indicará donde termina la ejecución del exec.

Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

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