我正在尝试(学习)使用curl
来下载文件http://cscope.sourceforge.net/cscope_maps.vim
。我尝试过的命令是:
curl -o cscope_maps.vim cscope.sourceforce.net/cscope_maps.vim
curl -O cscope.sourceforce.net/cscope_maps.vim
curl -LO cscope.sourceforce.net/cscope_maps.vim
curl -L cscope.sourceforce.net/cscope_maps.vim > cscope_maps.vim
上述所有命令都会导致我得到一个包含以下内容的文件:
<html><head><script type="text/javascript">location.replace("https://malware.opendns.com/?url=cscope.sourceforce.net%2Fcscope_maps.vim&server=lax20&prefs=&tagging=&nref");</script></head></html>
...而不是实际的文件。我做错了什么,下载文件的正确语法是什么curl
?
(如果我在图形浏览器中输入注明的 URL,我会看到预期的文件内容,因此我确信该 URL 是正确的)
PS:我想学习如何用curl
而不是解决这个问题wget
。
我还尝试过什么:
我读https://stackoverflow.com/questions/27458797/curl-command-doesnt-download-the-file-linux-mint这促使我尝试这些-L
选项,但如上所述,这并没有改变观察到的行为。
答案1
您的开场白表明您正在尝试从以下位置下载sourceforge.net
“我正在尝试(学习)使用它
curl
来下载文件http://cscope.sourceforge.net/cscope_maps.vim
...”
但是,您的尝试正在使用 sourcefor c
e.net
这卷曲手册页描述你正在尝试做的事情:
卷曲 [选项] [URL...]
该-o
选项就是您正在寻找的:
-o/--输出
将输出写入而不是标准输出。如果您使用 {} 或 [] 来获取多个文档,则可以在说明符中使用“#”后跟数字。该变量将替换为正在获取的 URL 的当前字符串。像:
卷曲 http://{one,two}.site.com -o "file_#1.txt"
或使用多个变量,例如:
卷曲 http://{site,host}.host[1-5].com -o "#1_#2"
您可以根据 URL 的数量多次使用此选项。
一旦拼写正确,您的第一次尝试应该会成功sourceforge
curl -o cscope_maps.vim cscope.sourceforge.net/cscope_maps.vim
这对我有用。