如何使用 wget 强制重新下载?

如何使用 wget 强制重新下载?

令我惊讶的是,当同名文件已经存在时,wget 不会重新下载。

在 Linux 上是否有一个选项可以强制他重新下载而不先删除文件?

答案1

wget -O - $url >/path/to-file

或者,如果您正在镜像,则可以使用标志-c。这将使文件“连续”,但由于它们的大小已经达到服务器告诉 wget 的大小,因此它将从头开始“连续”它们。

答案2

这很大程度上取决于您wget在命令行中给出的选项。我发现我的系统上的默认行为是重新下载,但在文件名后附加一个数字以使其不同。

以下是--no-clobber来自man wget(针对 wget 1.11.4)的选项描述 - 请注意与其他选项的交互,特别是-r-p。 (重点是我的。)

-nc
--no-clobber
如果文件在同一个目录中被多次下载,Wget 的行为取决于几个选项,包括 -nc。在某些情况下,本地文件在重复下载时将被破坏或覆盖。在其他情况下,它将被保留。

当运行不带 -N、-nc、-r 或 p 的 Wget 时,在同一目录中下载同一个文件将导致文件的原始副本被保留,而第二份副本被命名为 file.1。 如果再次下载该文件,则第三个副本将被命名为 file.2,依此类推。指定 -nc 时,此行为将被抑制,并且 Wget 将拒绝下载文件的新副本。因此,在这种模式下,“no-clobber”实际上是一个误称——它不是阻止破坏(因为数字后缀已经阻止破坏),而是阻止了多个版本保存。

当使用 -r 或 -p 运行 Wget 时,但不使用 -N 或 -nc,重新下载文件将导致新副本覆盖旧副本。添加 -nc 将阻止此行为,而是保留原始版本并忽略服务器上任何较新的副本。

当使用 -N 运行 Wget 时,无论是否使用 -r 或 -p,是否下载文件的较新副本取决于本地和远程时间戳以及文件大小。-nc 不能与 -N 同时指定。

请注意,当指定 -nc 时,后缀为 .html 或 .htm 的文件将从本地磁盘加载并进行解析,就像它们是从 Web 检索到的一样。

答案3

这是由-nc--no-clobber选项控制的。

这很复杂,取决于其他选项,但你可以选择永久写入或重命名重新下载文件 file.1, file.2

手册页似乎这么说如果你不使用“no-clobber”选项,重新下载的文件将重新编号。您看到带有数字后缀的文件了吗?

无论如何,请参阅man page

相关内容