0%

Linux curl命令

Linux curl命令

Linux curl命令是一款用于从一个server端传输的工具。

很强力,支持众多协议,比如:DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP,
SMTPS, TELNET 和 TFTP).

这个命令设计之初也是希望不需要用户的交互和介入。

官方定义为:

curl - transfer a URL

语法

1
$ curl [options / URLs]

参数

  • -O : 把输出写到该文件中,保留远程文件的文件名
  • -u : 通过服务端配置的用户名和密码授权访问

默认比较两个文件

默认情况下,将下载的数据写入到文件,并且使用服务器上的名字,这里以下载Linux的内核代码为例。

1
2
3
4
$ curl https://mirrors.edge.kernel.org/pub/linux/kernel/v2.4/linux-2.4.32.tar.gz -O
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
1 36.7M 1 575k 0 0 17431 0 0:36:50 0:00:33 0:36:17 27222

需要授权的网站

部分网站可能需要访问的授权,此时可以使用-u选项提供用户名和密码进行授权:

1
2
$ curl -u username https://www.website.com/
Enter host password for user 'username':

批量下载

当然,这么强力的工具,肯定是支持批量下载的,并且是正则表达式的支持。

比如:🔗ftp://ftp.example.com/的file1,file5和file7,方法如下:

1
$ curl ftp://ftp.example.com/file{1,5,7}.txt

如果下载🔗ftp://ftp.example.com/的从file1到file100的100组文件,方法如下:

1
$ curl ftp://ftp.example.com/file[1-100].txt
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道