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