Usando find -mmin para buscar archivos con tiempo de modificación en el futuro

9

Puedo usar

find . -mmin -5

para encontrar archivos modificados en los últimos 5 minutos. Sin embargo, si trato de encontrar archivos con tiempo de modificación en el futuro dando un número negativo se findniega a hacerlo:

find . -mmin --1

¿Hay alguna manera de dar tiempo de modificación futura al Linux estándar find?

Muxecoide
fuente

Respuestas:

9

Para buscar archivos modificados al menos 5 días en el futuro, use:

find . -newermt "5 days"

La sintaxis para la especificación de tiempo corresponde a la de date -d. Consulte man findpara obtener información sobre el interruptor nombrado -newerXYpara obtener más información.

No es posible utilizar, por ejemplo, -mminpara hacer esto. Se informó como un error contra GNU find , y se resolvió implementando -newerXYen findutils 4.3.3 (~ 2007) como lo mostré anteriormente.


Aparentemente, no se utilizó GNU find, sino BusyBox.

Debería poder crear un archivo temporal con touch -duna fecha en el futuro y luego usar el -newerinterruptor para find:

touch -d "+5 days" tmpfile
find . -newer tmpfile

BusyBox touchno admite ese formato de fecha, pero el principio es el mismo y es findcompatible -newer. La creación del archivo de referencia con una fecha correcta se deja como ejercicio para el lector (siempre conveniente para escribir).

Daniel Andersson
fuente
Gracias. Mi problema es que mi hallazgo es un viejo busyBox incrustado y no binutil find. Aparentemente, la forma estándar de Linux no funciona aquí. :(
Muxecoid
@Muxecoid: actualicé mi respuesta con algunos comentarios de BusyBox.
Daniel Andersson
Esto simplemente me ahorró problemas en una nueva máquina donde había hecho algo diez horas en el futuro por accidente (compensación de zona horaria aplicada a un reloj de hardware ya compensado) y después de arreglar el reloj, un configurescript se quejó de que las cosas estaban en el futuro (por un hora y media más o menos): find . -newermt '1 hour' | xargs touch -d '-9 hours'y puedo continuar. :-)
Chris Morgan