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
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. django 关于html、css、js 目录位置
  2. linux 环境变量
  3. HTML学习笔记--HTML的语法【1】
  4. C#检测网卡和网络统计信息
  5. 快递查询SDK
  6. LeetCode 263 Ugly Number
  7. 【Base64&amp;UrlEncode】
  8. poj3321
  9. c pointer and array
  10. 黑马程序员_Java面向对象3_多态
  11. 简单实用的下拉菜单(CSS+jquery)
  12. CentOS7 emacs安装
  13. 云计算之路-阿里云上:RDS数据库连接数过万引发故障,主备库切换后恢复正常
  14. ABP .Net Core Entity Framework迁移使用MySql数据库
  15. C语言——第六周作业
  16. Column Addition~DP(脑子抽了,当时没有想到)
  17. .Net语言 APP开发平台——Smobiler学习日志:如何设置页面的title
  18. 阿里规范学习总结-不要再foreach对元素进行add()/remove()操作,
  19. IText实现对PDF文档属性的基本设置
  20. (16)Python练习题

热门文章

  1. &quot;cni0&quot; already has an IP address different from 10.244.2.1/24。 Error while adding to cni network: failed to allocate for range 0: no IP addresses available in range set: 10.244.2.1-10.244.2.254
  2. C# web服务器被webbench攻击及目现采用的防御措施
  3. PAT 1063 计算谱半径(20)(代码)
  4. PAT 1032 挖掘机技术哪家强(20)(有测试样例)
  5. 洛谷4782 【模板】2-SAT 问题
  6. idea 高级调试技巧
  7. UI设计初学者必备的工具以及学习路线(附思维导图)
  8. filedisk.sys
  9. [SoapUI] 从上一个测试步骤获取ID list,通过Groovy脚本动态生成 Data Source 供后面的步骤使用
  10. Spring IOC(三)单例 bean 的注册管理