因此,在 Google 和超级用户(以及扫描手册页)上搜索了一段时间后,我还是无法找到一个(我认为)应该很简单的答案:
如果你去这里:
http://www.vim.org/scripts/script.php?script_id=2340
并尝试下载主题:
http://www.vim.org/scripts/download_script.php?src_id=9750
就像这样:
wget http://www.vim.org/scripts/download_script.php?src_id=9750
您最终可能会得到一个名为的文件download_script.php?src_id=9750
。
但我希望它被称为molokai.vim
,这就是我使用浏览器下载此文件时会发生的情况。
为了达到预期的效果,我需要为 wget 指定哪些选项?
我也可以接受与 Curl 等效的命令。
答案1
-O file
--output-document=file
这些文档将不会写入相应的文件,但会全部连接在一起并写入文件。如果
-
用作文件,文档将打印到标准输出,从而禁用链接转换。(用于./-
打印到名为的文件-.
)
所以,
wget -O somefile.extension 'http://www.vim.org/scripts/download_script.php?src_id=9750'
或者,你可能能够wget
到达自动地使用服务器建议的文件名使用--content-disposition
如果您的版本支持该选项。
wget --content-disposition 'http://www.vim.org/scripts/download_script.php?src_id=9750'
注意事项手册页,
--content-disposition
如果将其设置为开启,则将启用对“Content-Disposition”标头的实验性(非全功能)支持。目前,这可能会导致“HEAD”请求与服务器进行额外的往返,并且已知存在一些错误,这就是为什么它目前默认不启用的原因。
该选项对于一些使用“Content-Disposition”标头来描述下载文件的名称的文件下载 CGI 程序很有用。
您可以使用以下方式实现相同的自动化行为curl
:
curl -JLO 'http://www.vim.org/scripts/download_script.php?src_id=9750'
-O
使用远程名称,并-J
强制-O
从内容处置标头而不是 URL 获取该名称,并-L
在需要时遵循重定向。
答案2
使用 wget 你可以执行以下操作:
wget --trust-server-names <url>
使用服务器提供的最后一个文件名保存文件。
答案3
您还可以使用aria2c- 它似乎与 Content-Disposition 标头配合得很好。
答案4
工作方式如下:
curl -o molokai.vimhttp://www.vim.org/scripts/download_script.php?src_id=9750
wget -O 某个文件.扩展名http://www.vim.org/scripts/download_script.php?src_id=9750
(将大小写改为更小的形式,即(wget -O)改为(wget -o)