html - 如果 wget 中使用了 --html-extension,那么 --no-clobber 仍然会覆盖文件吗?

标签 html wget overwrite

我有一个用于下载所有 Chrome 书签的脚本。我将 wget 与 --html-extension 一起使用,因为某些书签以 .php 结尾,除非使用 --html-extension 选项,否则无法通过 Web 浏览器打开。我遇到的问题是,当我将 --html-extension 与 --no-clobber 一起使用时,它无法识别大多数文件由于某种原因已经存在,因此它会经历重新下载内容的整个过程已经有了。

一个例子: wget -nc http://www.test.com/ 运行一次将像预期的那样保存文件。如果您再次运行它,它会说该文件已经存在,因此无法检索。这就是我所期望的操作。

但是,删除刚刚保存的文件并运行: wget -nc http://www.test.com/ --html 扩展名 然后再次运行相同的命令。它会覆盖该文件而不是说文件已经存在。这是怎么回事?

最佳答案

添加 html 后缀后,wget 无法判断您要将其与哪个远程文件进行比较。

man wget: http://unixhelp.ed.ac.uk/CGI/man-cgi?wget

======================

--html-扩展

如果下载了 application/xhtml+xml 或 text/html 类型的文件 并且 URL 不以正则表达式 .[Hh][Tt][Mm][Ll]? 结尾,这 选项将导致后缀 .html 附加到本地 文件名。例如,当您镜像一个 使用 .asp 页面的远程站点,但您需要镜像页面 可在您的库存 Apache 服务器上查看。另一个很好的用途 这是当您下载 CGI 生成的 Material 时。一个网址 像http://site.com/article.cgi?25将被保存为arti- cle.cgi?25.html。

请注意,以这种方式更改的文件名将在每次重新下载 当你重新镜像一个站点时,因为 Wget 无法判断本地站点 X.html 文件对应于远程 URL X(因为它还不知道 URL 生成 text/html 或 application/xhtml+xml 类型的输出。 要防止重新下载,必须使用 -k 和 -K 以便文件的原始版本将另存为 X.原始。

关于html - 如果 wget 中使用了 --html-extension,那么 --no-clobber 仍然会覆盖文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13783627/

相关文章:

html - 我可以声明父级的 CSS 吗?

web-services - 使用 wget 调用 Web 服务

PHP 挂起等待 exec 从 wget+mysql 命令返回结果

python 写错误

jquery - 如何使用 CSS 更改图标图像的颜色?

javascript - Uncaught Error : cannot call methods on dialog prior to initialization using jQuery

java - 通过Spark覆盖HDFS文件/目录

Python for 循环覆盖

javascript - Jquery .on Listener 不要给新元素添加点击监听器

linux - wget无法解析主机下载https