使用Wget跳过成功下载的文件
Skip successfully downloaded files using Wget
所以我有这个 Bash 子例程来使用 wget 下载文件,我现在的问题是如何跳过成功下载的文件。该脚本下载了很多文件,一旦下载失败,它会重新下载所有文件,覆盖从一开始就成功下载的文件(可能因为重新下载而不完整)。
那么如何跳过那些下载成功的文件呢?
DownloadFile() {
paramURL=
paramFilename=
if [ $flag_archive_fetch = "false" ];
then
wget "--timeout=180" "--tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename"
else
unzip -o "$archive_file" "$paramFilename" -d "${scratch_dir}"
fi
touch "${scratch_dir}$paramFilename"
}
您可以利用 Wget --continue
(恢复中断的下载)和 --timestamping
(仅当 Last-modified
属性更改时覆盖成功下载的文件,否则跳过下载)
wget "--continue ‐‐timestamping --timeout=180" "--tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename"
另一种选择是使用 --no-clobber
而不是 --timestamping
,它会跳过已经下载的文件而不检查 Last-modified
属性,
wget "--continue ‐‐no-clobber --timeout=180" "--tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename"
你可以查看 WGET exit status code by checking the $?
wget .....
# store the error
error=$?
if (( $error != 0 ))
then
#handle error
else
#handle success
fi
所以我有这个 Bash 子例程来使用 wget 下载文件,我现在的问题是如何跳过成功下载的文件。该脚本下载了很多文件,一旦下载失败,它会重新下载所有文件,覆盖从一开始就成功下载的文件(可能因为重新下载而不完整)。
那么如何跳过那些下载成功的文件呢?
DownloadFile() {
paramURL=
paramFilename=
if [ $flag_archive_fetch = "false" ];
then
wget "--timeout=180" "--tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename"
else
unzip -o "$archive_file" "$paramFilename" -d "${scratch_dir}"
fi
touch "${scratch_dir}$paramFilename"
}
您可以利用 Wget --continue
(恢复中断的下载)和 --timestamping
(仅当 Last-modified
属性更改时覆盖成功下载的文件,否则跳过下载)
wget "--continue ‐‐timestamping --timeout=180" "--tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename"
另一种选择是使用 --no-clobber
而不是 --timestamping
,它会跳过已经下载的文件而不检查 Last-modified
属性,
wget "--continue ‐‐no-clobber --timeout=180" "--tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename"
你可以查看 WGET exit status code by checking the $?
wget .....
# store the error
error=$?
if (( $error != 0 ))
then
#handle error
else
#handle success
fi