如何使用适当的文件名保存wget

时间:2014-01-26 00:45:20

标签: wget

当我去ISC here下载BIND时,我的浏览器会自动正确保存下载的文件。例如,如果我点击9.9.4-P2的下载按钮,它会弹出一个窗口,如果我点击右边的“BIND 9.9.4-P2 - tar.gz”按钮,浏览器会自动保存下载文件为“bind-9.9.4-P2.tar.gz”。

然而,我要做的是通过Linux上的wget下载它。所以我右键单击“BIND 9.9.4-P2 - tar.gz”按钮并复制了“https://www.isc.org/downloads/file/bind-9-9-4-p1-tar-gz/?version=tar.gz”链接。

现在当我发出以下命令时,它会将其保存为'index.html?version = tar.gz'。现在我明白我可以给它-O选项并明确指定保存的文件名但有没有办法自动执行此操作类似于我的浏览器的操作方式?

wget https://www.isc.org/downloads/file/bind-9-9-4-p1-tar-gz/?version=tar.gz

2 个答案:

答案 0 :(得分:14)

在HTTP级别,服务器将文件名信息发送到HTTP响应中Content-Disposition标头字段中的客户端:

HTTP/1.1 200 OK
[…]
Content-Disposition: attachment; filename="bind-9.9.4-P2.tar.gz";

有关Content-Disposition标题字段的详细信息,请参阅RFC2183

wget根据其联机帮助页面对此功能提供了实验支持:

   --content-disposition
      If this is set to on, experimental (not fully-functional) support for
      "Content-Disposition" headers is enabled. This can currently result in
      extra round-trips to the server for a "HEAD" request, and is known to
      suffer from a few bugs, which is why it is not currently enabled by
      default.

因此,如果您选择启用它,只需指定--content-disposition选项即可。 (您也可以使用curl代替wget来完成工作,但问题是关于wget。)

答案 1 :(得分:8)

您可以将content-disposition参数设置为默认激活。

只需修改/etc/wgetrc~/.wgetrc文件并附加content-disposition = on