2 種從 Linux 終端下載文件的方法
wget 也許是 Linux 和類 UNIX 系統中使用最多的命令行下載管理器。你可以使用 wget
下載一個文件、多個文件、整個目錄甚至整個網站。
wget
是非互動式的,可以輕鬆地在後台工作。這意味著你可以很容易地在腳本中使用它,甚至構建像 uGet 下載管理器這樣的工具。
讓我們看看如何使用 wget
從終端下載文件。
安裝 wget
大多數 Linux 發行版都預裝了 wget
。它也可以在大多數發行版的倉庫中找到,你可以使用發行版的包管理器輕鬆安裝它。
在基於 Ubuntu 和 Debian 的發行版上,你可以使用 apt 包管理器命令:
sudo apt install wget
使用 wget 下載文件或網頁
你只需要提供文件或網頁的 URL。它將在你所在的目錄下以原始名下載該文件。
wget URL
要下載多個文件,你必須將它們的 URL 保存在一個文本文件中,並將該文件作為輸入提供給 wget
,就像這樣:
wget -i download_files.txt
用 wget 下載不同名字的文件
你會注意到,網頁在 wget
中幾乎總是以 index.html
的形式保存。為下載的文件提供自定義名稱是個好主意。
你可以在下載時使用 -O
(大寫字母 O
) 選項來提供輸出文件名:
wget -O filename URL
用 wget 下載一個文件夾
假設你正在瀏覽一個 FTP 伺服器,你需要下載整個目錄,你可以使用遞歸選項 -r
:
wget -r ftp://server-address.com/directory
使用 wget 下載整個網站
是的,你完全可以做到這一點。你可以用 wget
鏡像整個網站。我說的下載整個網站是指整個面向公眾的網站結構。
雖然你可以直接使用鏡像選項 -m
,但最好加上:
–convert-links
:鏈接將被轉換,使內部鏈接指向下載的資源,而不是網站。–page-requisites
:下載額外的東西,如樣式表,使頁面在離線狀態下看起來更好。
wget -m --convert-links --page-requisites website_address
額外提示:恢復未完成的下載
如果你因為某些原因按 CTRL-C
鍵中止了下載,你可以用選項 -c
恢復之前的下載:
wget -c
使用 curl 在 Linux 命令行中下載文件
和 wget
一樣,curl 也是 Linux 終端中最常用的下載文件的命令之一。使用 curl 的方法有很多,但我在這裡只關注簡單的下載。
安裝 curl
雖然 curl
並不是預裝的,但在大多數發行版的官方倉庫中都有。你可以使用你的發行版的包管理器來安裝它。
要在 Ubuntu 和其他基於 Debian 的發行版上安裝 curl
,請使用以下命令:
sudo apt install curl
使用 curl 下載文件或網頁
如果你在使用 curl
命令時沒有在 URL 中帶任何選項,它就會讀取文件並列印在終端上。
要在 Linux 終端中使用 curl
命令下載文件,你必須使用 -O
(大寫字母 O
)選項:
curl -O URL
在 Linux 中,用 curl
下載多個文件是比較簡單的。你只需要指定多個 URL 即可:
curl -O URL1 URL2 URL3
請記住,curl
不像 wget
那麼簡單。wget
可以將網頁保存為 index.html
,curl
卻會抱怨遠程文件沒有網頁的名字。你必須按照下一節的描述用一個自定義的名字來保存它。
用不同的名字下載文件
這可能會讓人感到困惑,但如果要為下載的文件提供一個自定義的名稱(而不是原始名稱),你必須使用 -o
(小寫 O
)選項:
curl -o filename URL
有些時候,curl
並不能像你期望的那樣下載文件,你必須使用選項 -L
(代表位置)來正確下載。這是因為有些時候,鏈接會重定向到其他鏈接,而使用選項 -L
,它就會跟隨最終的鏈接。
用 curl 暫停和恢復下載
和 wget
一樣,你也可以用 curl
的 -c
選項恢復暫停的下載:
curl -c URL
總結
和以往一樣,在 Linux 中做同一件事有多種方法。從終端下載文件也不例外。
wget
和 curl
只是 Linux 中最流行的兩個下載文件的命令。還有更多這樣的命令行工具。基於終端的網路瀏覽器,如 elinks、w3m 等也可以用於在命令行下載文件。
就個人而言,對於一個簡單的下載,我更喜歡使用 wget
而不是 curl
。它更簡單,也不會讓你感到困惑,因為你可能很難理解為什麼 curl
不能以預期的格式下載文件。
歡迎你的反饋和建議。
via: https://itsfoss.com/download-files-from-linux-terminal/
作者:Abhishek Prakash 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive