0 前言
curl是一款综合性网络传输工具,既可以上传也可以下载,支持HTTP、HTTPS、FTP等30余种常见协议。
Linux和Windows都提供了curl命令。
相对于Windows 系统中的curl,Linux下的curl命令选项超多,在学习笔记68和69中,我们列举了该命令的部分实例,今天继续通过实例来研究curl命令的功能和用法。
1 curl命令应用实例
1.1 只查看将把header(头部信息)写入指定文件:curl -I 统一资源定位符
我们可以使用命令 curl -i 网址 来显示header信息和资源内容,如果我们只想想看header信息,可以使用-I选项。
1.1.1 查看g.cn的header信息
1.1.2 查看网络文件 的header信息
1.2 将把header(头部信息)写入指定文件:curl -D 文件名 统一资源定位符
我们可以使用命令 curl -I 网址 来显示header信息,如果我们想把header信息保存到文件中,可以使用-D选项。
例如,我们要把http://g.cn的头部信息写入当前目录下的文件 h.txt中。
首先,我们使用命令 curl -D h.txt http://g.cn 来将header信息保存到当前目录下的文件h.txt中
然后,我们使用ls命令查看当前目录下的内容,可以看到在当前目录下,有一个目录code,还有一个文件h.txt。
接着,我们使用 cat命令查看文件h.txt的内容,正是g.cn的header信息。
1.3 下载文件时保存原始时间:curl -R -o 文件名 统一资源定位符
通常我们将网络中的文件下载保存到本地,那么本地的文件的时间会是实际保存时间,如果我们希望下载到本地的文件仍然保存网络中远程文件的原始时间,那么可以使用-R选项。
我们以下载1.1.2 中的网络文件 为例。
首先,我们使用命令curl -o 1.png 将 远程文件 下载为本地文件1.png
然后我们使用命令 ls -l --full-time 1.png 查看文件1.png的时间信息,即:
2024-08-12 23:01:08.213754613 +0800
在 1.1.2 中,我们可以看到网络文件 的时间信息,即:
Thu, 01 Aug 2024 05:07:57 GMT
可以看到, 本地文件1.png的时间信息与 网络文件 是不同的。
接着,我们使用命令 curl -R -o 2.png 将 远程文件 下载为本地文件2.png
随后,我们使用命令 ls -l --full-time 2.png 查看文件2.png的时间信息,即:
2024-08-01 13:07:57.000000000 +0800
可以看到,这显然不是文件写入磁盘的时间。
这是由于我们在命令curl -R -o 2.png 中一了 -R选项,所以本地文件2.png的与 网络文件 的时间信息都是2024-08-01 。
1.4 查看邮件:curl -u 用户名:密码 imap服务器url
我们以imap://mail.163.com为例。
在命令行上直接输入密码可能并不安全,所以我们也可以只在命令行上输入用户名,然后再根据提示输入密码。
1.5 查阅使用手册:curl -M | more
curl命令的帮助信息还是比较简略的,我们还可以使用 -M 选项查阅使用手册,获取更详细的说明。