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

















