sep 18 2009
Buscar un fichero creado entre dos fechas
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!
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.
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)
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″
;-)
La técnica de Iker funciona.
Gracias a todos por compartir lo que sabéis, qué majos sois.
@Iker Sagasti Markina, eso solo para BSD majo ;) , se supone que se está hablando de Linux