¿Cómo puedo mover un archivo a otra carpeta, pero sólo si no se ha modificado desde hace 10 minutos?

¿Cómo puedo mover un archivo a otra carpeta, pero sólo si no se ha modificado desde hace 10 minutos?

Reemplace los "10 minutos" con cualquier valor. Básicamente sólo quiero mover el archivo si ya no crece. ¿Cómo puedo hacer esto en la línea de comandos o en un script bash?

Se prefiere una solución que sea fácil cron.


Detalles:

  • SO: CentOS
  • Lo que he probado hasta ahora: nada porque no sé ni por dónde empezar
  • Qué tipo de archivos: cualquier archivo en un directorio

Respuesta1

Comando de una línea aquí:

find /path/to/dir1 -type f ! -mmin -10 -exec mv {} /path/to/dir2 \;

Reemplaza -10con lo que quieras, la regla es:

+n     for greater than n,
-n     for less than n,
n      for exactly n.

Respuesta2

Hay muchas maneras.

Usando buscar:

if find some_directory -mmin +10 | grep "^filename$" ; then
    mv filename somewhere_else
fi

Otra forma sería calcular la suma md5 y compararla.

touch .filename.md5

prev_md5=$(cat .filename.md5)
new_md5=$(md5sum filename)

if [ "$prev_md5" = "$new_md5" ] ; then
    mv filename somewhere_else
fi
echo "$new_md5" > .filename.md5

y ejecútelo cada 10 minutos.

información relacionada