下载单个文件
1 | # 将文件下载到本地并命名为mygettext.html |
断点续传
通过使用-C选项可对大文件使用断点续传功能
1 | # 当文件在下载完成之前结束该进程 |
下载指定时间内修改过的文件
当下载一个文件时,可对该文件的最后修改日期进行判断,如果该文件在指定日期内修改过,就进行下载,否则不下载。
该功能可通过使用-z选项来实现:
1 | # 若yy.html文件在2011/12/21之后有过更新才会进行下载 |
CURL授权
在访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权1
2
3curl -u username:password URL
# 通常的做法是在命令行只输入用户名,之后会提示输入密码,这样可以保证在查看历史记录时不会将密码泄露
curl -u username URL
从FTP服务器下载文件
CURL同样支持FTP下载,若在url中指定的是某个文件路径而非具体的某个要下载的文件名,CURL则会列出该目录下的所有文件名而并非下载该目录下的所有文件
1 | # 列出public_html下的所有文件夹和文件 |
保存与使用网站cookie信息
1 | # 将网站的cookies信息保存到sugarcookies文件中 |
传递请求数据
默认curl使用GET方式请求数据,这种方式下直接通过URL传递数据
可以通过 –data/-d 方式指定使用POST方式传递数据
1 | # GET |
注:默认情况下,通过POST方式传递过去的数据中若有特殊字符,首先需要将特殊字符转义在传递给服务器端,如value值中包含有空格,则需要先将空格转换成%20,如:
1 | curl -d "value%201" http://hostname.com |
在新版本的CURL中,提供了新的选项 –data-urlencode,通过该选项提供的参数会自动转义特殊字符。1
curl --data-urlencode "value 1" http://hostname.com
除了使用GET和POST协议外,还可以通过 -X 选项指定其它协议,如:1
curl -I -X DELETE https://api.github.cim
上传文件1
curl --form "fileupload=@filename.txt" http://hostname/resource