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

use*_*702 4 wget

当我去ISC 这里下载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
Run Code Online (Sandbox Code Playgroud)

Leo*_*ber 14

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

HTTP/1.1 200 OK
[…]
Content-Disposition: attachment; filename="bind-9.9.4-P2.tar.gz";
Run Code Online (Sandbox Code Playgroud)

有关标头字段的详细信息,请参阅RFC2183Content-Disposition.

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.
Run Code Online (Sandbox Code Playgroud)

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


kku*_*ann 8

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

只需编辑/etc/wgetrc~/.wgetrc文件并追加即可content-disposition = on