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 | $ curl https://mirrors.edge.kernel.org/pub/linux/kernel/v2.4/linux-2.4.32.tar.gz -O |
需要授权的网站
部分网站可能需要访问的授权,此时可以使用-u
选项提供用户名和密码进行授权:
1 | $ curl -u username https://www.website.com/ |
批量下载
当然,这么强力的工具,肯定是支持批量下载的,并且是正则表达式的支持。
比如:🔗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 |