curl工具介绍和常用命令
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&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/&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
版权声明:本文为博主原创文章,转载请附上博文链接!
最新文章
- django 关于html、css、js 目录位置
- linux 环境变量
- HTML学习笔记--HTML的语法【1】
- C#检测网卡和网络统计信息
- 快递查询SDK
- LeetCode 263 Ugly Number
- 【Base64&;UrlEncode】
- poj3321
- c pointer and array
- 黑马程序员_Java面向对象3_多态
- 简单实用的下拉菜单(CSS+jquery)
- CentOS7 emacs安装
- 云计算之路-阿里云上:RDS数据库连接数过万引发故障,主备库切换后恢复正常
- ABP .Net Core Entity Framework迁移使用MySql数据库
- C语言——第六周作业
- Column Addition~DP(脑子抽了,当时没有想到)
- .Net语言 APP开发平台——Smobiler学习日志:如何设置页面的title
- 阿里规范学习总结-不要再foreach对元素进行add()/remove()操作,
- IText实现对PDF文档属性的基本设置
- (16)Python练习题
热门文章
- ";cni0"; 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
- C# web服务器被webbench攻击及目现采用的防御措施
- PAT 1063 计算谱半径(20)(代码)
- PAT 1032 挖掘机技术哪家强(20)(有测试样例)
- 洛谷4782 【模板】2-SAT 问题
- idea 高级调试技巧
- UI设计初学者必备的工具以及学习路线(附思维导图)
- filedisk.sys
- [SoapUI] 从上一个测试步骤获取ID list,通过Groovy脚本动态生成 Data Source 供后面的步骤使用
- Spring IOC(三)单例 bean 的注册管理