Archive for February 5th, 2007|Daily archive page

Find en Unix – El mejor amigo del administrador

Este es mi primer post de caracter técnico a pedido de un amigo.

Parece algo minúsculo dedicarle un post a un solo comando de Unix / Linux, pero es de destacar la utilidad del mismo y como contrapartida éste, como tantos otros comando de unix, puede ser usado en Windos sin problemas mediante Cygwin, del que vamos a hablar mas adelante

En mi día a día he encontrado diversas formas y utilidades al find. ¿Pero qué tiene de especial?

find puede usarse tanto para buscar un elemento determinado como para ejecutar acciones sobre el mismo.

Vamos a los sintaxis básica:

find [path…] [expression]

Pero ésto no dice demasiado, asi que mejor me voy a centrar en los ejemplos.

1) Digamos que quiero buscar un archivo por su nombre en un directorio.. digamos /home

# find /home -name archivo.gz

2) Ahora suponemos que quiero buscar en mi /home… los archivos y solo los archivos que hayan sido modificados entre el día de hoy y el de ayer, es decir, que tengan menos de 2 días de modificados (incluye crearlos), y quiero verlos en modo extendido.

# find /home -type f -mtime -2 -exec ls-l {} \;

* Con -type indicamos el tipo de elemento (f para archivo y d para directorio).

* Con -mtime indico cuando fue modificado por última vez ese archivo ( si le ponemos -n son menos de n días ; si le ponemos n es hace exactamente n días (sin contar hoy); y si le ponemos +n (adiviná) son los con más de n días). Del mismo modo se puede usar el parámetro -atime (access time) o el -ctime (create time)

* Con -exec lo que hago es decirle al find que ejecute algún otro comando con los archivos que encontró (que van entre llaves en la sentencia). Ésto nos abre tremendamente las posibilidades de automatizar tareas ya que podemos por ejemplo comprimir, borrar o hacer cualquier cosa con un grupo de archivos , directorios o ambos que cumplan con las condiciones que le imponemos con el find.

Para terminar, otro parámetro que se le puede agregar a nustra sarta find es el -mount o -xdev (según el SO que usemos), esto es de gran utilidad, y sirve para que la búsqueda no se escape por otros filesystems montados en puntos que están donde estoy buscando.

Para mayor información hacer man find 😉

Bueno, espero sirva.

Hasta la próxima