Curl 和 Wget 的区别
Nilesh Katuwal
2023年1月30日
2022年5月11日
-
在 Linux 中安装
wget
和curl
-
在 Linux 中使用
curl
访问网站 -
在 Linux 中使用
wget
访问网站 -
Linux 中
curl
和wget
之间的区别 -
与 Linux 中的
curl
命令对比中的wget
我们通常会考虑在从 Internet 下载文件时按下下载按钮。但是,你可以从终端下载文件。
wget
和 curl
是最常用的两个工具。本教程将着眼于这两者,看看它们有何不同。
curl
命令允许你将数据从任何服务器发送到你的计算机。另一方面,wget
命令将数据下载为文件。
这是两个命令之间最显着的区别。
在 Linux 中安装 wget
和 curl
如果你没有安装 wget
和 curl
,你可以使用下面的命令下载。
使用以下命令在你的系统上安装 curl
:
#Debian and Ubuntu Systems
sudo apt install curl
#Arch Linux
sudo pacman -S curl
使用以下命令在你的系统上安装 wget
:
#Debian and Ubuntu Systems
sudo apt install wget
#Arch Linux-based distros:
sudo pacman -S wget
在 Linux 中使用 curl
访问网站
让我们在 google.com
上运行 curl
以查看输出的样子。
$ curl google.com
输出:
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
如你所见,curl
显示来自终端网页的数据。
在 Linux 中使用 wget
访问网站
让我们在一些网站上运行 wget
来查看输出。
$ wget python.org
输出:
--2022-01-19 21:50:34-- http://python.org/
Resolving python.org (python.org)... 138.197.63.241
Connecting to python.org (python.org)|138.197.63.241|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://python.org/ [following]
--2022-01-19 21:50:37-- https://python.org/
Connecting to python.org (python.org)|138.197.63.241|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.python.org/ [following]
--2022-01-19 21:50:39-- https://www.python.org/
Resolving www.python.org (www.python.org)... 2a04:4e42:2d::223, 151.101.188.223
Connecting to www.python.org (www.python.org)|2a04:4e42:2d::223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 49799 (49K) [text/html]
Saving to: 'index.html'
index.html 100%[=================================================================>] 48.63K 9.75KB/s in 5.0s
2022-01-19 21:50:46 (9.75 KB/s) - 'index.html' saved [49799/49799]
wget
默认情况下将结果保存到文件中。在输出中,还有一个进度条。
Linux 中 curl
和 wget
之间的区别
-
curl
基于libcurl
,这是一个跨平台库,具有任何人都可以使用的明确定义的 API。这种区别很关键,因为它产生了一种完全不同的处理内部事物的心态。库也比
简单
命令行工具更难创建。 -
curl
类似于标准Unix-cat
命令,因为它以everything is a pipe
方式将更多数据传输到stdout
并从stdin
读取更多数据。 -
curl
主要设计用于执行单次数据传输。它只传输用户选择的 URL,没有任何递归下载逻辑或HTML
解析器。
与 Linux 中的 curl
命令对比中的 wget
- 与
curl
相比,wget
的主要优势在于它能够递归下载,甚至只是从远程资源引用的所有内容,无论是HTML
页面还是FTP
目录列表。 wget
可以追溯到它的前身 1996 年 1 月 9 日,而curl
只能追溯到 1996 年 11 月 11 日。wget
在 GNU 通用公共许可证版本 3 下发布。wget
是 GNU 项目的一部分,所有版权已移交给自由软件基金会。curl
项目完全自给自足,没有组织监督,几乎所有版权归 Daniel 所有。wget
不需要任何附加参数即可将远程URL
下载到本地文件,但curl
需要。