跳过使用Wget成功下载的文件

所以我有这个Bash子例程使用wget下载文件,现在我的问题是如何跳过成功下载的文件。 该脚本下载了大量文件,一旦下载失败,它将重新下载所有文件,从头开始覆盖这些成功的下载(可能由于重新下载而不完整)。

那么如何跳过那些成功下载的文件呢?

DownloadFile() { paramURL=$1 paramFilename=$2 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退出状态代码 $?

 wget ..... # store the error error=$? if (( $error != 0 )) then #handle error else #handle success fi