Curl是基於UNIX的系統中默認安裝的工具,Curl支持多種協議,包括HTTP、HTTPS、FTP、FTPS、SFTP等。如果你沒有指定任何協議,默認是HTTP協議。 |
環境
Centos7.7
下載文件,使名稱一致
可以使用curl下載文件的相同名稱作為本地文件名。可以用-O選項。
[root@localhost ~]# curl http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 7205M 0 25.9M 0 0 5452k 0 0:22:33 0:00:04 0:22:29 5452k [root@localhost ~]# ls CentOS-8.1.1911-x86_64-dvd1.iso
下載多個文件
要同時下載多個文件時,可以使用多個-O標志,后面跟着要url鏈接。
[root@localhost ~]# curl -O [URL1] -O [URL2] -O [URL3] ...
例子:
[root@localhost ~]# curl -O www.example.com/file.pdf -O www.example.com/file1.pdf % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 20597 100 20597 0 0 1436k 0 --:--:-- --:--:-- --:--:-- 1436k 100 20597 100 20597 0 0 9.8M 0 --:--:-- --:--:-- --:--:-- 9.8M
如果url中文件帶有數字,並且有順序,可以使用正則語法:
[root@localhost ~]# curl ftp://ftp.example.com/file[1-30].jpg
如果希望使用不同的名稱保存多個文件,可以使用-o選項來實現,如下所示。
[root@localhost ~]# curl -o file2.pdf www.example.com/file.pdf -o file3.pdf www.example.com/file1.pdf % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 20597 100 20597 0 0 957k 0 --:--:-- --:--:-- --:--:-- 957k 100 20597 100 20597 0 0 19.6M 0 --:--:-- --:--:-- --:--:-- 19.6M
下載文件顯示進度條
curl在文件下載期間顯示一個進度表,顯示傳輸速率、傳輸的數據量、剩余的時間等……
[root@localhost ~]# curl -# -O http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso ## 3.5%
如何限制最大傳輸速度
限制數據傳輸速率的用法為:
[root@localhost ~]# curl --limit-rate [value] [URL]
這個值可以用字節表示,k后綴為千字節,m后綴為兆字節,g后綴為千兆字節。
以下命令將把下載速度限制在1mb以內:
[root@localhost ~]# curl --limit-rate 1m -O http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 7205M 0 21.1M 0 0 1033k 0 1:58:57 0:00:20 1:58:37 1005k
總結
curl提供了很多有用的技巧,比如代理支持、用戶身份驗證、FTP上傳、HTTP post、SSL連接、cookie、文件傳輸恢復、Metalink等等。