Попробуйте использовать curl вместо wget:
curl -o "$file" -z "$file" "$uri"
man curl говорит:
-z/--time-cond <выражение даты>
(HTTP/FTP) Запросить файл, который был изменен позднее, чем указанное время и дата, или файл, который был изменен до этого времени. Выражение даты может быть всевозможными строками даты или, если оно не совпадает ни с какими внутренними, вместо этого оно пытается получить время из заданного имени файла.
Если $file не обязательно существует заранее, вам нужно использовать условный флаг -z , используя test -e "$file":
if test -e "$file"
then zflag="-z '$file'"
else zflag=
fi
curl -o "$file" $zflag "$uri"
(Обратите внимание, что мы не указываем здесь расширение $zflag , поскольку хотим, чтобы он подвергался расщеплению до 0 или 2 токенов).