从 Linux 终端下载文件的 2 种方法

如果你被困在 Linux 终端,比如在服务器上,你如何从终端下载文件?

Linux 中没有下载命令,但有几个用于下载文件的 Linux 命令。

在这个终端技巧中,您将学习两种在 Linux 中使用命令行下载文件的方法。

我在这里使用 Ubuntu,但除了安装之外,其余命令对所有其他 Linux 发行版同样有效。

使用 wget 命令从 Linux 终端下载文件

获取 可能是 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 服务器并且你需要下载整个目录,你可以使用递归选项

wget -r ftp://server-address.com/directory

使用 wget 下载整个网站

是的,你完全可以做到。 您可以使用 wget 镜像整个网站。 下载整个网站是指整个面向公众的网站结构。

虽然您可以直接使用镜像选项 -m,但最好添加:

  • –convert-links : 链接被转换,以便内部链接指向下载的资源而不是 web
  • –page-requisites:下载样式表之类的附加内容,以便页面在离线时看起来更好
wget -m --convert-links --page-requisites website_address

额外提示:恢复未完成的下载

如果由于某些原因按 C 中止下载,您可以使用选项 -c 恢复先前的下载。

wget -c 

使用从 Linux 命令行下载文件 curl

像wget, curl 也是 Linux 终端中最流行的下载文件的命令之一。 有很多方法可以 利用 curl 广泛地 但我将在这里只关注简单的下载。

安装 curl

尽管 curl 没有预装,它可以在大多数发行版的官方存储库中找到。 您可以使用发行版的包管理器来安装它。

安装 curl 在 Ubuntu 和其他基于 Debian 的发行版上,使用以下命令:

sudo apt install curl

下载文件或网页使用 curl

如果你使用 curl 如果没有带 URL 的任何选项,它将读取文件并将其打印在终端屏幕上。

使用下载文件 curl 命令在 Linux 终端,你必须使用 -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 中下载文件的两个最流行的命令。 还有更多这样的命令行工具。 基于终端的网络浏览器,如 电子链接, 3米 等也可用于在命令行中下载文件。

就个人而言,对于简单的下载,我更喜欢使用 wget curl. 它更简单,更不容易混淆,因为您可能很难弄清楚原因 curl 无法下载预期格式的文件。

欢迎您的反馈和建议。