Curl 和 Wget 的區別

Nilesh Katuwal 2023年1月30日
  1. 在 Linux 中安裝 wgetcurl
  2. 在 Linux 中使用 curl 訪問網站
  3. 在 Linux 中使用 wget 訪問網站
  4. Linux 中 curlwget 之間的區別
  5. 與 Linux 中的 curl 命令對比中的 wget
Curl 和 Wget 的區別

我們通常會考慮在從 Internet 下載檔案時按下下載按鈕。但是,你可以從終端下載檔案。

wgetcurl 是最常用的兩個工具。本教程將著眼於這兩者,看看它們有何不同。

curl 命令允許你將資料從任何伺服器傳送到你的計算機。另一方面,wget 命令將資料下載為檔案。

這是兩個命令之間最顯著的區別。

在 Linux 中安裝 wgetcurl

如果你沒有安裝 wgetcurl,你可以使用下面的命令下載。

使用以下命令在你的系統上安裝 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--  https://www.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 中 curlwget 之間的區別

  • 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 需要。

相關文章 - Linux Command