Попробуйте использовать 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"