Как переместить файл в другую папку, если он не изменялся в течение 10 минут?

Как переместить файл в другую папку, если он не изменялся в течение 10 минут?

Замените "10 минут" на любое значение. По сути, я хочу переместить файл, только если он больше не растет. Как это сделать в командной строке или скрипте bash?

Предпочтительнее решение, которое легко реализовать cron.


Подробности:

  • ОС: CentOS
  • Что я пробовал до сих пор: ничего, потому что я даже не знаю, с чего начать.
  • Какие файлы: любые файлы в каталоге

решение1

Команда в одну строку:

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

Замените -10на то, что хотите, правило таково:

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

решение2

Есть много способов.

Используя поиск:

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

Другой способ — вычислить md5sum и сравнить ее

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

и запускайте это каждые 10 минут.

Связанный контент