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.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.