如何使用cURL下载文件

时间:2019-05-19 01:25:50  来源:igfitidea点击:

cURL是一个用于从远程系统传输数据的开源命令行工具和库。
cURL支持广泛的协议,如FILE、FTP、FTPS、HTTP、HTTPS、SCP、SFTP和。
本文将了解如何使用cURL命令行下载远程文件。

下载单个文件

使用以下命令使用HTTP协议从远程服务器下载单个文件。
下面的示例将从远程服务器下载latest.tar.gz,并保存在同名的当前目录中。

$ curl -O http://wordpress.org/latest.tar.gz

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0    0    239      0 --:--:-- --:--:-- --:--:--   239

下载文件并以其他名称保存

使用以下命令从远程服务器下载单个文件,并将其保存在本地磁盘上的指定位置和指定名称。
下面的示例将从远程服务器下载最新的.tar.gz,并保存在/tmp/目录中,名称为wp.tar.gz。

$ curl -o /tmp/wp.tar.gz  http://wordpress.org/latest.tar.gz

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0    0    212      0 --:--:-- --:--:-- --:--:--   212

下载多个文件

使用以下命令使用HTTP协议从多个远程服务器的多个文件下载文件。
下面的示例将从远程服务器下载latest.tar.gz和latest.zip,并以相同的名称保存在当前目录中。

$ curl -O http://wordpress.org/latest.tar.gz -O http://wordpress.org/latest.zip

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0    0    202      0 --:--:-- --:--:-- --:--:--   202
100   178  100   178    0    0    387      0 --:--:-- --:--:-- --:--:--   387

下载需要身份验证的文件

如果远程文件隐藏身份验证并且需要用户名和密码来下载文件。
使用以下示例下载文件。
使用ftp登录凭证从ftp服务器下载文件

$ curl -u ftpuser:ftppasswd -O ftp://ftp.example.com/file.zip

使用http登录凭证从http服务器下载文件。

$ curl -u username:password -O http://wordpress.org/latest.tar.gz

通过代理服务器下载文件

如果连接需要代理服务器下载远程文件。
使用以下示例通过代理服务器下载文件。
使用-x 后面跟着 代理服务器:端口。

$ curl -x 192.168.0.100:3128 -L -O  http://wordpress.org/latest.tar.gz 

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0    0    435      0 --:--:-- --:--:-- --:--:--   435
100 6373k  100 6373k    0    0   116k      0  0:00:54  0:00:54 --:--:--  102k