我想用curl下载一个文件但它不起作用!
curl -O https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/help/hello.o
这是我在许多官方网站上看到的例子。他们说上面的命令下载文件hello.o。它没有!它只是下载某种输出并将其存储在具有相同名称的文件中。
如果我运行上面的命令,并打印hello.o的内容,它会说:
<html><body>You are being <a href="https://raw.githubusercontent.com/systems-cs-pub-ro/uso/master/tema1/help/hello.o">redirected</a>.</body></html>
hello.o的维数是147字节。
另外,如果我输入
wget https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/help/hello.o
它下载文件hello.o到底是怎么回事!现在,它的尺寸是1,2 K
有没有办法使用curl下载文件hello.o,具体如何使用wget下载它?
谢天谢地。
答案 0 :(得分:22)
使用Curl,您需要使用-L标志,如下所示:
curl -L https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/help/hello.o&gt; hello.o
来自Curl的手册页:
-L, - 位置 (HTTP / HTTPS)如果服务器报告所请求的页面已移动到其他位置(用Location:标题和3XX响应代码表示),则此选项将使curl重做新位置的请求。如果与-i, - include或-I, - head一起使用,将显示来自所有请求页面的标题。使用身份验证时,curl仅将其凭据发送到初始主机。如果重定向将curl转移到其他主机,则无法拦截用户+密码。另请参阅--location-trusted有关如何更改此信息。您可以使用--max-redirs选项限制要遵循的重定向数量。当curl遵循重定向并且请求不是普通的GET(例如POST或PUT)时,如果HTTP响应是301,302或303,它将使用GET执行以下请求。如果响应代码是任何其他3xx 代码,curl将使用相同的未修改方法重新发送以下请求。
请注意,您的问题已在此处得到解答: How do I download a tarball from GitHub using cURL?