Sep 12 2007
find & tar, dos buenos amigos
oi me vi en la obligación de hacer que estos amigos (find & tar) interactuaran entre sí porque necesitaba hacer un script que me permitiera buscar los últimos archivos modificados en x carpeta y luego me los “tareara”.
la verdad que la tarea no fue fácil, primero tenía dudas respecto a los parámetros -ctime y -mtime del comando find, luego me enteré que -ctime busca los “created time” i el otro, -mtime, los “modified time”, este último no solo busca los modificados, sino que también los creados (:
ya con estos datos la tarea se me aclaró un poco más.
buscando, buscando, encontré esta página, la cual me proporcionó bastante ayuda (: está en portugues pero voce nao fala portugues? je.
finalmente me quedó así:
find /home/jgarrido/programas/ -type f -mtime 0 | tar zcvf /home/jgarrido/respaldo/respaldo-`date +%Y%m%d`.tar.gz -T -
primero busco dentro de /home/jgarrido/programas todos los archivos modificados/creados las últimas 24hrs, luego por el pipe (la cañería) mando el resultado a ser comprimido dentro de la carpeta /home/jgarrido/respaldo/ con el nombre “respaldo-fecha_actual”.tar.gz
además de esto podemos agregar exclusiones (-exclude=), en el comando tar. usando el mismo ejemplo de más arriba, si quisiera excluir los archivos Thumb.db solo agrego –exclude=Thumb.db
find /home/jgarrido/programas/ -type f -mtime 0 | tar zcvf /home/jgarrido/respaldo/respaldo-`date +%Y%m%d`.tar.gz -T - –exclude=Thumb.db
si por ejemplo, dentro de la carpeta programas, del ejemplo anterior, quisiera excluir toda la carpeta non-free lo hariamos de la forma
find /home/jgarrido/programas/ -type f -mtime 0 | tar zcvf /home/jgarrido/respaldo/respaldo-`date +%Y%m%d`.tar.gz -T - –exclude=/home/jgarrido/programas/non-free
enjoy!

