【问题标题】:Wget to resume downloading files from where it stoppedWget 从它停止的地方继续下载文件
【发布时间】:2020-05-31 05:32:27
【问题描述】:

我是 Wget 的新手,我想知道是否有办法从我停止下载的地方继续下载文件? 例如: 我正在从具有以下文件的网站下载一堆文件: 1.pdf 2.pdf 3.pdf 4.pdf

由于某种原因,当 wget 下载了 1,2 个文件时我停止了下载,并且我将这些下载的文件移动到了另一个我现在无法访问的存储空间。那么我可以运行一个命令来排除我已经下载的前 2 个文件,然后从第 3 个文件重新开始,依此类推吗?

我已经在使用这个命令了:

wget -m -np -c -U "MyDir" -R "index.html*" "TheURL"

对不起,我用愚蠢的方式来解释我的问题,并提前感谢您的回复。

【问题讨论】:

    标签: directory download wget resume mirror


    【解决方案1】:

    您已经在使用-R 选项来拒绝具有特定模式的文件名(您说-R "index.html*" 拒绝任何以index.html 开头的文件名),因此您可以简单地将更多文件名添加到该拒绝列表中,即使用-R "index.html*,1.pdf,2.pdf" 如果您知道您已经将 1.pdf2.pdf 保存到另一台计算机并且您不关心其他目录中具有相同名称的文件。 (我不确定我是否理解您拒绝 index.html* 的原因,因为这可能会导致某些文件列表未被扫描。)

    对于更复杂的情况(或者如果您只是不想编写很长的-R 参数),在运行 wget 之前使用touch 创建空文件可能更容易,然后删除空文件。这是有效的,因为您使用的是 wget -m,它(至少在 2001 年以后的 wget 版本中)打开 -N(时间戳检查)——只要服务器支持时间戳(大多数都支持),wget 就会告诉它想要文件的服务器只有在它比现有文件的时间戳更新,即“比现在更新”,如果你刚才放了一个空文件。不过,空文件必须正确命名并位于正确的目录中。

    您可能想做的另一个调整是将-m 替换为-r -nc -l inf(因为通常-m 表示-r -N -l inf,我建议将-N 替换为-nc)。 -N 检查时间戳,-nc 避免下载 any 已经存在的文件,无论时间戳如何(因此即使服务器不支持时间戳也可以工作),但更重要的是,@ 987654340@ 会导致您已经下载的文件被扫描链接,而-N 不会。 如果您需要缓慢地镜像大型服务器,这与-w (--wait) 结合使用非常有用,因为如果您必须在完成之前重新启动计算机或其他操作,您可以从停止的位置恢复镜像,wget 仍然会考虑上次获取的文件中的任何链接。

    另一方面,-N 更好,如果您之前的下载已完成并且您只需要检查更新 - 尽管使用 -N 进行镜像仍然依赖于从 也 有一个更新的时间戳(如果 that 页面是通过链接而不是直接从您提供的 URL 到达的,那么至少有一个 its 链接页面必须有一个更新的时间戳,以便它的更新被注意到,等等)——目前似乎没有办法告诉 wget 解析被-N 跳过的 HTML 页面,因为它可以解析 HTML -nc跳过的页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 2013-08-16
      • 2022-09-26
      相关资源
      最近更新 更多