Cân nhắc sử dụng curlthay vì wget:
curl -o "$file" -z "$file" "$uri"
man curl nói:
-z/ --time-cond <biểu thức ngày>
(HTTP / FTP) Yêu cầu một tệp đã được sửa đổi muộn hơn thời gian và ngày đã cho hoặc một tệp đã được sửa đổi trước thời điểm đó. Biểu thức ngày có thể là tất cả các loại chuỗi ngày hoặc nếu nó không khớp với bất kỳ chuỗi nội bộ nào, nó sẽ cố gắng lấy thời gian từ một tên tệp đã cho.
Nếu $filekhông nhất thiết tồn tại trước, bạn sẽ cần sử dụng -zcờ có điều kiện, sử dụng test -e "$file":
if test -e "$file"
then zflag="-z '$file'"
else zflag=
fi
curl -o "$file" $zflag "$uri"
(Lưu ý rằng chúng tôi không trích dẫn việc mở rộng $zflagở đây, vì chúng tôi muốn nó trải qua quá trình phân tách thành 0 hoặc 2 mã thông báo).
Nếu hệ vỏ của bạn hỗ trợ các mảng (ví dụ Bash), thì chúng tôi có phiên bản an toàn hơn và sạch hơn:
if test -e "$file"
then zflag=(-z "$file")
else zflag=()
fi
curl -o "$file" "${zflag[@]}" "$uri"