若是你被困在 Linux 終端,好比說在服務器上,如何從終端下載文件?html
在 Linux 中是沒有 download
命令的,可是有幾個 Linux 命令可用於下載文件。linux
在這篇終端技巧中,你將學習兩種在 Linux 中使用命令行下載文件的方法。git
我在這裏使用的是 Ubuntu,但除了安裝,其他的命令一樣適用於全部其餘 Linux 發行版。github
使用 wget 命令從 Linux 終端下載文件
wget 也許是 Linux 和類 UNIX 系統中使用最多的命令行下載管理器。你能夠使用 wget
下載一個文件、多個文件、整個目錄甚至整個網站。web
wget
是非交互式的,能夠輕鬆地在後臺工做。這意味着你能夠很容易地在腳本中使用它,甚至構建像 uGet 下載管理器這樣的工具。ubuntu
讓咱們看看如何使用 wget
從終端下載文件。瀏覽器
安裝 wget
大多數 Linux 發行版都預裝了 wget
。它也能夠在大多數發行版的倉庫中找到,你能夠使用發行版的包管理器輕鬆安裝它。服務器
在基於 Ubuntu 和 Debian 的發行版上,你能夠使用 apt 包管理器命令:網絡
sudo apt install wget
使用 wget 下載文件或網頁
你只須要提供文件或網頁的 URL。它將在你所在的目錄下以原始名下載該文件。curl
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
