Curl 是用于在本地计算机与远程服务器之间传输数据的命令行工具。使用curl时您可以使用HTTP,HTTPS,SCP SFTPFTP等协议下载或上传数据。

Curl 提供了许多选项,使您可以恢复上传/下载,限制带宽,代理支持,用户身份验证等。

在本教程中,我们将说明如何在Linux使用Curl命令下载文件及其选项的详解。如果您未指定使用的协议,Curl默认使用HTTP协议。

Curl 命令已预安装在大多数Linux发行版。要检查你的Linux发行版是否已安装Curl,请按快捷键CTRL+ALT+T打开终端,键入curl,然后按Enter。

安装 Curl

如果已安装curl,则系统将打印curl: try 'curl --help' or 'curl --manual' for more information

否则终端打印消息curl command not found curl命令未找到。如果你尚未安装Curl,则可以使用发行版的软件包管理器安装curl

如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux Mint等。请运行sudo apt install curl命令安装curl。

如果你的计算机运行的是基于Redhat的Linux发行版,例如CentOS,Fedora等。请运行sudo yum install curl命令安装Curl。

sudo apt install curl -y
sudo yum install curl -y

Curl 命令下载文件

默认情况下curl命令下载URL指定资源并重定向标准输出。如果要保存下载到文件,可以使用curl命令的-o-O选项。

使用小写-o选项时,你可以指定保存文件的名称,也可以指定绝对路径,Curl命令将会把文件下载到你指定绝对路径。

Curl命令的大写-O选项将使用其原始文件名保存到文件在当前目录,也就是运行curl命令所在的目录。

例如命令curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js下载vue.js文件到当前的目录中。

命令curl -o /home/myfreax/vue3.js https://cdn.jsdelivr.net/dist/vue.js下载文件vue.js保存到文件/home/myfreax/vue3.js

下载完成后,可以运行ls命令列出curl下载的文件。ls vue*表示列出名称包含vue字符串的文件。

curl -o /home/myfreax/work/vue.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

ls vue* #查看刚下载文件

Curl 命令下载多个文件

要一次下载多个文件,请使用多个-O选项或者小写的-o选项,后跟要下载文件的URL。

与使用curl命令下载单个文件一样。当使用小写的-o选项时你需要指定的下载目录路径。使用大写-O选项会保存当前目录下。

还可以混合使用小写的-o选项和大写-O选项。下面的curl命令在使用-O选项时下载vue.js文件到当前的目录,以名称vue.js保存文件。

小写-o选项下载vue.js文件myfreax用户的家目录下的wrok目录,并将文件保存为vue.js

mkdir /home/myfreax/work/

curl -o /home/myfreax/work/Vue.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js \
-O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

ls /home/myfreax/work/vue.js && ls vue.js

Curl 命令断点续传/恢复下载

如果您在下载大文件期间断开连接。无需重新开始下载,可以使用curl命令的-C -选项恢复上一次的下载。

也可以在第一次下载文件时直接指定-C -选项,当下载大文件断开连接时,直接使用之前的命令即可恢复下载。

但有一点值得注意点是,Curl命令的断点续传/恢复下载需要服务器端支持断点续传,否则Curl会重新开始下载文件。

curl -C - -O https://releases.ubuntu.com/22.04/ubuntu-22.04-desktop-amd64.iso

结论

至此,你已熟悉使用curl命令下载一个或者多个文件,可以使用-o指定保存文件的目录文件夹或者-O选项使用其原始名称保存文件,以及恢复CURL命令的下载。