Sep 18 2009

Buscar un fichero creado entre dos fechas

Published by admin at 2:39 am under Bash,SysAdmin

Te acuerdas que creaste un fichero entre el 15 de Septiembre de 2008 y el 30 de Septiembre de ese mismo año. ¿Cómo lo puedes buscar en Linux? Fácil, usando el comando find y este truquito:

$ touch -d "15 sep 2008" /tmp/begin
$ touch -d "30 sep 2008" /tmp/end
$ find . -newer /tmp/begin -a \! -newer /tmp/end

Lo he necesitado varias veces y nunca me acordaba de la receta, así que la dejo aquí compartida para todos. ¡Que os aproveche!

4 responses so far

4 Responses to “Buscar un fichero creado entre dos fechas”

  1. Joseon 19 Sep 2009 at 3:57 pm

    Podias explicar un poco que es lo que hace touch -d, acaso crea algun tipo de archivo, lo siento pero aunque lo he buscado con el man no me entero de lo que esta pasando realmente. Un saludo.

  2. adminon 20 Sep 2009 at 12:46 pm

    El comando

    touch -d “una_fecha_X” /tmp/fichero

    genera un fichero vacío con fecha de creación igual a la fecha_X que indiquemos.

    El comando find simplemente buscar ficheros creados más recientemente que fecha_inicio pero más viejos que fecha_fin (-a = AND lógico, el símbolo ! es de negación, y hay que filtrarlo con \ para que bash no lo interprete)

  3. Iker Sagasti Markinaon 24 Sep 2009 at 9:57 pm

    Para versiones nuevas de find (>=2.4), te lo puedes hacer con un solo comando mediante la opción ‘-newerXY’

    $ find . -newermt “15 sep 2008″ \! -newermt “30 sep 2008″

    ;-)

  4. Antonioon 12 Ene 2010 at 10:23 am

    La técnica de Iker funciona.

    Gracias a todos por compartir lo que sabéis, qué majos sois.

Trackback URI | Comments RSS

Leave a Reply

« Back to text comment