Como posso mover um arquivo para outra pasta, mas somente se ele não tiver sido modificado há 10 minutos?

Como posso mover um arquivo para outra pasta, mas somente se ele não tiver sido modificado há 10 minutos?

Substitua os “10 minutos” por qualquer valor. Basicamente, só quero mover o arquivo se ele não estiver mais crescendo. Como posso fazer isso na linha de comando ou em um script bash?

Uma solução que seja fácil croné preferida.


Detalhes:

  • SO: CentOS
  • O que tentei até agora: nada porque não sei por onde começar
  • Que tipo de arquivos: quaisquer arquivos em um diretório

Responder1

Comando de uma linha aqui:

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

Substitua -10pelo que quiser, a regra é:

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

Responder2

Existem muitos caminhos.

Usando encontrar:

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

Outra forma seria calcular o md5sum e compará-lo

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

e execute isso a cada 10 minutos.

informação relacionada