2 種從 Linux 終端下載文件的方法
在 Linux 中是沒有 download
命令的,但是有幾個(gè) Linux 命令可用于下載文件。
在這篇終端技巧中,你將學(xué)習(xí)兩種在 Linux 中使用命令行下載文件的方法。
我在這里使用的是 Ubuntu,但除了安裝,其余的命令同樣適用于所有其他 Linux 發(fā)行版。
使用 wget 命令從 Linux 終端下載文件
wget 也許是 Linux 和類 UNIX 系統(tǒng)中使用最多的命令行下載管理器。你可以使用 wget
下載一個(gè)文件、多個(gè)文件、整個(gè)目錄甚至整個(gè)網(wǎng)站。
wget
是非交互式的,可以輕松地在后臺(tái)工作。這意味著你可以很容易地在腳本中使用它,甚至構(gòu)建像uGet 下載管理器這樣的工具。
讓我們看看如何使用 wget
從終端下載文件。
安裝 wget
大多數(shù) Linux 發(fā)行版都預(yù)裝了 wget
。它也可以在大多數(shù)發(fā)行版的倉庫中找到,你可以使用發(fā)行版的包管理器輕松安裝它。
在基于 Ubuntu 和 Debian 的發(fā)行版上,你可以使用apt 包管理器命令:
- sudo apt install wget
使用 wget 下載文件或網(wǎng)頁
你只需要提供文件或網(wǎng)頁的 URL。它將在你所在的目錄下以原始名下載該文件。
- wget URL

要下載多個(gè)文件,你必須將它們的 URL 保存在一個(gè)文本文件中,并將該文件作為輸入提供給 wget
,就像這樣:
- wget -i download_files.txt
用 wget 下載不同名字的文件
你會(huì)注意到,網(wǎng)頁在 wget
中幾乎總是以 index.html
的形式保存。為下載的文件提供自定義名稱是個(gè)好主意。
你可以在下載時(shí)使用 -O
(大寫字母 O
) 選項(xiàng)來提供輸出文件名:
- wget -O filename URL

用 wget 下載一個(gè)文件夾
假設(shè)你正在瀏覽一個(gè) FTP 服務(wù)器,你需要下載整個(gè)目錄,你可以使用遞歸選項(xiàng) -r
:
- wget -r ftp://server-address.com/directory
使用 wget 下載整個(gè)網(wǎng)站
是的,你完全可以做到這一點(diǎn)。你可以用 wget
鏡像整個(gè)網(wǎng)站。我說的下載整個(gè)網(wǎng)站是指整個(gè)面向公眾的網(wǎng)站結(jié)構(gòu)。
雖然你可以直接使用鏡像選項(xiàng) -m
,但最好加上:
- –convert-links
- –page-requisites
- wget -m --convert-links --page-requisites website_address

額外提示:恢復(fù)未完成的下載
如果你因?yàn)槟承┰虬?nbsp;CTRL-C
鍵中止了下載,你可以用選項(xiàng) -c
恢復(fù)之前的下載:
- wget -c
使用 curl 在 Linux 命令行中下載文件
和 wget
一樣,curl 也是 Linux 終端中最常用的下載文件的命令之一。使用 curl 的方法有很多,但我在這里只關(guān)注簡單的下載。
安裝 curl
雖然 curl
并不是預(yù)裝的,但在大多數(shù)發(fā)行版的官方倉庫中都有。你可以使用你的發(fā)行版的包管理器來安裝它。
要在 Ubuntu 和其他基于 Debian 的發(fā)行版上安裝 curl
,請(qǐng)使用以下命令:
- sudo apt install curl
使用 curl 下載文件或網(wǎng)頁
如果你在使用 curl
命令時(shí)沒有在 URL 中帶任何選項(xiàng),它就會(huì)讀取文件并打印在終端上。
要在 Linux 終端中使用 curl
命令下載文件,你必須使用 -O
(大寫字母 O
)選項(xiàng):
- curl -O URL

在 Linux 中,用 curl
下載多個(gè)文件是比較簡單的。你只需要指定多個(gè) URL 即可:
- curl -O URL1 URL2 URL3
請(qǐng)記住, curl
不像 wget
那么簡單。 wget
可以將網(wǎng)頁保存為 index.html
, curl
卻會(huì)抱怨遠(yuǎn)程文件沒有網(wǎng)頁的名字。你必須按照下一節(jié)的描述用一個(gè)自定義的名字來保存它。
用不同的名字下載文件
這可能會(huì)讓人感到困惑,但如果要為下載的文件提供一個(gè)自定義的名稱(而不是原始名稱),你必須使用 -o
(小寫 O
)選項(xiàng):
- curl -o filename URL

有些時(shí)候, curl
并不能像你期望的那樣下載文件,你必須使用選項(xiàng) -L
(代表位置)來正確下載。這是因?yàn)橛行r(shí)候,鏈接會(huì)重定向到其他鏈接,而使用選項(xiàng) -L
,它就會(huì)跟隨最終的鏈接。
用 curl 暫停和恢復(fù)下載
和 wget
一樣,你也可以用 curl
的 -c
選項(xiàng)恢復(fù)暫停的下載:
- curl -c URL
總結(jié)
和以往一樣,在 Linux 中做同一件事有多種方法。從終端下載文件也不例外。
wget
和 curl
只是 Linux 中最流行的兩個(gè)下載文件的命令。還有更多這樣的命令行工具?;诮K端的網(wǎng)絡(luò)瀏覽器,如elinks、w3m 等也可以用于在命令行下載文件。
就個(gè)人而言,對(duì)于一個(gè)簡單的下載,我更喜歡使用 wget
而不是 curl
。它更簡單,也不會(huì)讓你感到困惑,因?yàn)槟憧赡芎茈y理解為什么 curl
不能以預(yù)期的格式下載文件。