Foros del Web » Administración de Sistemas » Unix / Linux »

Uso del comando FIND

Estas en el tema de Uso del comando FIND en el foro de Unix / Linux en Foros del Web. Buenas gente, Tengo el siguiente dilema. En un directorio tengo una serie de ficheros que se van generando diariamente. Los ficheros que se generan por ...
  #1 (permalink)  
Antiguo 28/04/2011, 07:01
 
Fecha de Ingreso: agosto-2006
Mensajes: 174
Antigüedad: 18 años, 3 meses
Puntos: 2
Uso del comando FIND

Buenas gente,

Tengo el siguiente dilema. En un directorio tengo una serie de ficheros que se van generando diariamente. Los ficheros que se generan por dia van desde uno solo a varios.

La duda que tengo es, teniendo el siguiente ejemplo

t11.txt 26/04/2011
t12.txt 26/04/2011
t21.txt 27/04/2011
t22.txt 27/04/2011

Y hoy por ejemplo se generan dos ficheros mas:

t31.txt 28/04/2011
t32.txt 28/04/2011

El proceso que va generando los ficheros, es un proceso que se lanza desde el crontab de la maquina a, por ejemplo, las 16 horas todos los dias.

Lo que pretendo es que, despues de lanzar el proceso y de generar dichos ficheros, en ese mismo dia, por ejemplo a las 18 h de la tarde, obtener con un find todos los ficheros anteriores al 28/04/2011, quedandome unicamente los ficheros del 26 y 27 para despues ejecutar un rm. Lo que se pretende es borrar todos los ficheros obsoletos a la fecha actual y mantener los de la fecha actual.

He probado usando en el find la condicion +mtime 0, y me devuelve creo recordar t31.txt y t32.txt, cuando lo que quiero es lo contrario que me devuelva los ficheros anteriores al 28:

find [directorio] -type f -mtime +0 -exec rm -f {} \;

Esto es lo que quiero hacer,

Muchas gracias
  #2 (permalink)  
Antiguo 02/05/2011, 08:43
Avatar de Lecquio  
Fecha de Ingreso: mayo-2004
Ubicación: Asturias, España
Mensajes: 948
Antigüedad: 20 años, 6 meses
Puntos: 34
Respuesta: Uso del comando FIND

Creo que el parámetro que necesitas no es mtime sino ctime.
Para borrar ficheros con fecha de creación anterior a, por ejemplo, 50 días, yo uso este comando:
find . -maxdepth 2 -ctime +50 -exec rm {} \;

Etiquetas: comando, find, sistemas-unix
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:33.