牧童的思恋

博客园 首页 新随笔 联系 订阅 管理

curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、Linux发行版中,并且有DOS和Win32、Win64的移植版本。curl是一个利用URL规则在命令行下工作的文本传输工具。它支持上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。
常用命令:
1、下载单个文件,默认将输出打印到标准输出(stdout)中

curl http://www.centos.org

2、通过将-o/-O选项保存下载的文件到指定的文件中:
-o:将文件保存为命令行中指定的文件名的文件中

curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

-O:使用URL中默认的文件名保存文件到本地

curl -O http://www.gnu.org/software/gettext/manual/gettext.html

同时,也可以使用转向符“>”对输出进行转向输出。

3、同时获取多个文件:

curl -O URL1 -O URL2

若同时从同一个站点下载多个文件时,curl会尝试重用链接(connection)。
通过-L选项进行重定向
默认情况下CURL不会发送HTTP Location headers(重定向),当一个被请求页面移动到另一个站点时,会发送一个HTTP Location header作为请求,然后将请求重定向到新的地址上。
例如,访问google.com 时,会自动将地址重定向到google.com.hk上:

curl http://www.google.com
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE>
</HEAD>
<BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com.hk/url?sa=p&amp;hl=zh-CN&amp;pref=hkredirect&amp;pval=yes&amp;q=http://www.google.com.hk/&amp;ust=1379402837567135amp;usg=AFQjCNF3o7umf3jyJpNDPuF7KTibavE4aA">here</A>.
</BODY>
</HTML>

上述说明,所有请求的档案被转移到了http://www.google.com.hk
这时可以通过使用-L选项进行强制的重定向:

# 让curl使用地址进行重定向,此时会查询google.com.hk站点
curl -L http://www.google.com

断点续传
通过使用-C选项可对大文件使用断点续传功能,如:

# 当文件在下载完成之前结束该进程
$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html
############## 20.1%

# 通过添加-C选项继续对该文件进行下载,已经下载过的文件不会被重新下载
curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
############### 21.1%

从FTP服务器下载文件
CURL同样支持FTP下载,若在url中指定的是某个文件路径而非具体的某个要下载的文件名,CURL则会列出该目录下的所有文件名而非下载该目录下的所有文件:

# 列出public_html下的所有文件夹和文件
curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/
# 下载xss.php文件
curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php
---------------------
作者:AdaFanmm
来源:CSDN
原文:https://blog.csdn.net/u011641865/article/details/71414426
版权声明:本文为博主原创文章,转载请附上博文链接!

posted on 2019-01-25 15:30  牧童的思恋  阅读(503)  评论(0编辑  收藏  举报