проверка изменения размера файла

Linux bash stat size file

проверяю размер файла таким образом:

cam=path_to_file
s1=$(stat -c %s $cam)

for (( ;; ))
do
s2=$(stat -c %s $cam)
if [[ $s1 -ne $s2 ]]
then
notify-send -t 18000 -u critical "`date`" "размер изменился"
exit 0
fi
done

здесь stat -c %s filename выводит размер файла.
первый раз s1 - это исходный размер, потом s2 - это уже новый размер высчитывается в цикле.
и дальше сравниваем, выполняется условие и скрипт завершается.

а я хочу сделать так, чтобы он продолжался и чтобы s1 принял текущее значение и в цикле уже опять сравнивать с s2.


Примечание:
короче надо что то типа goto, чтобы возвращаться в начало скрипта и по новой считать размер и отталикаваться от него.
но goto в bash нету.

наверное надо поместить это еще в один бесконечный цикл... и вместо exit 0 тогда возвращаться в начало.

я вроде понимаю, что нужно, но не могу никак написать.
помогите плз)

Примечание:
richy 26.09.2009 15:51:23
> а ещё, может лучше проверять не размер файла, а контрольную сумму... md5, sha512

не хочется нагружать комп подсчетами

Примечание:
richy 26.09.2009 15:46:14

класс, то что нужно.
что то я недокумекал до этого

спасибо!
Ответы:
Linux?
Use inotify-tools, Luke!


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.