Замените "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 минут.