Вам действительно нужно сжать файл?
wget
обеспечивает -N, --timestamping
, что, очевидно, включает отметку времени.Это значит, что ваш файл находится по адресу www.example.com / file.txt
При первом выполнении:
$ wget -N www.example.com/file.txt
[...]
[...] file.txt saved [..size..]
В следующий разбудет так:
$ wget -N www.example.com/file.txt
Server file no newer than local file “file.txt” -- not retrieving.
За исключением случаев, когда файл на сервере был обновлен.
Это решило бы вашу проблему, если бы вы не сжимали файл.
Если вам действительно нужно сжать его, то, я думаю, я бы пошел со сравнением хэша нового файла / архива иСтарый.Что имеет значение в этом случае, насколько большой загружаемый файл?Стоит ли сначала сжимать его, а затем проверять хэши?Стоит ли распаковывать старый архив и сравнивать хэши?лучше хранить старый хеш в текстовом файле?все ли они имеют преимущество перед перезаписью старого файла?
Вы только это знаете, проведите несколько тестов.
Итак, если вы идете по пути хэширования, рассмотрите сжатие sha256 и xz (алгоритм lzma2).
Я бы сделал что-то вроде этого (в Bash):
newfilesum="$(wget -q www.example.com/file.txt -O- | tee file.txt | sha256sum)"
oldfilesum="$(xzcat file.txt.xz | sha256sum)"
if [[ $newfilesum != $oldfilesum ]]; then
xz -f file.txt # overwrite with the new compressed data
else
rm file.txt
fi
и это сделано;