Cân nhắc sử dụng curl
thay 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 $file
không nhất thiết tồn tại trước, bạn sẽ cần sử dụng -z
cờ 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"