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

时间:2015-09-01 02:01:50

标签: linux bash download 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"
}

2 个答案:

答案 0 :(得分:6)

您可以利用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"

答案 1 :(得分:0)

您可以通过查看WGET exit status code

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