在这篇终端技巧中,你将学习两种在 Linux 中运用指令行下载文件的办法。
假如你被困在 Linux 终端,比如说在服务器上,怎么从终端下载文件?
在 Linux 中是没有 download 指令的,但是有几个 Linux 指令可用于下载文件。
在这篇终端技巧中,你将学习两种在 Linux 中运用指令行下载文件的办法。
我在这里运用的是 Ubuntu,但除了装置,其他的指令相同适用于一切其他 Linux 发行版。
运用 wget 指令从 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
运用 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 不能以预期的格局下载文件
