You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用wget恢复中断的递归下载,跳过已下载文件的日期检查

恢复Wget递归下载任务并快速跳过已下载文件

我之前执行以下Wget命令后下载任务中断:

wget -w 10 -m -H "<URL>"

使用版本为GNU Wget 1.21.3,基于darwin18.7.0构建。当前已完成80000个文件的下载,还需获取剩余520000个文件,需要恢复任务并满足以下要求:

  • 快速跳过已下载文件,无需向服务器请求检查文件日期
  • 找到未下载文件后,保持每10秒下载1个的速率,避免压垮服务器
  • 继续递归解析已下载文件中的链接,直至找到未下载的文件
  • 无需续传未完成文件、更新已有文件,完全避免不必要的服务器请求

尝试过的无效方案

方案1:使用-c参数续传

命令:

wget -c -w 10 -m -H "<URL>"

问题:Wget会逐个向服务器发送HEAD请求,检查已下载文件的日期,80000个文件需耗时约800000秒,速度极慢,与重新下载无异。

方案2:使用-nc参数避免覆盖

命令:

wget -w 10 -r -nc -l inf --no-remove-listing -H "<URL>"

执行后输出:

File ‘<URL>’ already there; not retrieving.

问题:因起始URL对应的文件已存在,Wget直接跳过该文件,且不会解析其中的链接进行递归下载,完全无法继续任务。

可行解决方案

使用以下命令可以满足需求:

wget -w 10 -r -l inf -H --no-remove-listing --ignore-existing --force-html --base="<URL>" file:///absolute/path/to/your/local/start/file

参数说明

  • --ignore-existing:直接跳过本地已存在的文件,不向服务器发送任何请求,彻底解决检查速度慢的问题
  • file:///absolute/path/to/your/local/start/file:指定本地已下载的起始文件路径,让Wget从本地文件解析链接,而非直接请求原始URL
  • --base="<URL>":指定原始URL作为基准,确保Wget能正确构造本地文件中链接的完整地址
  • --force-html:强制将本地文件当作HTML解析(如果起始文件是HTML或目录索引页,此参数可确保链接被正确识别)
  • 保留-w 10、-r、-l inf、-H、--no-remove-listing等参数,维持原有的递归规则和速率限制

注意事项

  • 需将/absolute/path/to/your/local/start/file替换为实际的本地起始文件路径,可根据原始URL的结构查找(例如原始URL为https://example.com/docs/,本地路径通常为example.com/docs/index.html)
  • 如果起始文件是服务器生成的目录索引页,--force-html参数可确保Wget正确解析其中的链接

内容的提问来源于stack exchange,提问作者Terje Oseberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:45:24