Попробуйте использовать 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 токенов).
Если ваша оболочка поддерживает массивы (например, Bash), у нас есть более безопасная и чистая версия:
if test -e "$file"
then zflag=(-z "$file")
else zflag=()
fi
curl -o "$file" "${zflag[@]}" "$uri"