Queremos encontrar todos los ficheros con extension .conf dentro de /etc:
1 |
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:
1 |
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:
1 |
find /var/log -name '*.bak' -mtime +15 |
Si no quisieramos esos ficheros, solamente tenemos que borrarlos:
1 |
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.