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
Miércoles 24 de junio de 2020, increíble! Me sirvió muy bien.
Yo lo usé para buscar archivos entre dos fechas y horas determinadas y además eliminarlos. Lo hice así:
sudo find -newermt «23 jun 2020 00:00» ! -newermt «24 jun 2020 13:00» -exec rm -R {} \;
yo lo uso asi
find -newermt 2020-09-10 ! -newermt 2020-11-10 -exec ls {} \;
si los quiero listar
find -newermt 2020-09-10 ! -newermt 2020-11-10 -exec rm {} \;
si los quiero borrar