translating

This commit is contained in:
geekpi 2020-10-20 08:44:07 +08:00
parent 84787fb410
commit bf79689271
2 changed files with 192 additions and 192 deletions

View File

@ -1,192 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (2 Ways to Download Files From Linux Terminal)
[#]: via: (https://itsfoss.com/download-files-from-linux-terminal/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
2 Ways to Download Files From Linux Terminal
======
If you are stuck to the Linux terminal, say on a server, how do you download a file from the terminal?
There is no download command in Linux but there are a couple of Linux commands for downloading file.
In this terminal trick, youll learn two ways to download file using command line in Linux.
I am using Ubuntu here but apart from the installation, rest of the commands are equally valid for all other Linux distributions.
### Download files from Linux terminal using wget command
![][1]
[wget][2] is perhaps the most used command line download manager for Linux and UNIX-like systems. You can download a single file, multiple files, entire directory or even an entire website using wget.
wget is non-interactive and can easily work in the background. This means you can easily use it in scripts or even build tools like [uGet download manager][3].
Lets see how to use wget to download file from terminal.
#### Installing wget
Most Linux distributions come with wget preinstalled. It is also available in the repository of most distributions and you can easily install it using your distributions package manager.
On Ubuntu and Debian based distribution, you can use the [apt package manager][4] command:
```
sudo apt install wget
```
#### Download a file or webpage using wget
You just need to provide the URL of the file or webpage. It will download the file with its original name in the directory you are in.
```
wget URL
```
![][5]
To download multiple files, youll have to save their URLs in a text file and provide that text file as input to wget like this:
```
wget -i download_files.txt
```
#### Download files with a different name using wget
Youll notice that a webpage is almost always saved as index.html with wget. It will be a good idea to provide custom name to downloaded file.
You can use the -O (uppercase O) option to provide the output filename while downloading.
```
wget -O filename URL
```
![][6]
#### Download a folder using wget
Suppose you are browsing an FTP server and you need to download an entire directory, you can use the recursive option
```
wget -r ftp://server-address.com/directory
```
#### Download an entire website using wget
Yes, you can totally do that. You can mirror an entire website with wget. By downloading an entire website I mean the entire public facing website structure.
While you can use the mirror option -m directly, it will be a good idea add:
* convert-links : links are converted so that internal links are pointed to downloaded resource instead of web
* page-requisites: downloads additional things like style sheets so that the pages look better offline
```
wget -m --convert-links --page-requisites website_address
```
![][7]
#### Bonus Tip: Resume incomplete downloads
If you aborted the download by pressing C for some reasons, you can resume the previous download with option -c.
```
wget -c
```
### Download files from Linux command line using curl
Like wget, [curl][8] is also one of the most popular commands to download files in Linux terminal. There are so many ways to [use curl extensively][9] but Ill focus on only the simple downloading here.
#### Installing curl
Though curl doesnt come preinstalled, it is available in the official repositories of most distributions. You can use your distributions package manager to install it.
To [install curl on Ubuntu][10] and other Debian based distributions, use the following command:
```
sudo apt install curl
```
#### Download files or webpage using curl
If you use curl without any option with a URL, it will read the file and print it on the terminal screen.
To download a file using curl command in Linux terminal, youll have to use the -O (uppercase O) option:
```
curl -O URL
```
![][11]
It is simpler to download multiple files in Linux with curl. You just have to specify multiple URLs:
```
curl -O URL1 URL2 URL3
```
Keep in mind that curl is not as simple as wget. While wget saves webpages as index.html, curl will complain of remote file not having a name for webpages. Youll have to save it with a custom name as described in the next section.
#### Download files with a different name
It could be confusing but to provide a custom name for the downloaded file (instead of the original source name), youll have to use -o (lowercase O) option:
```
curl -o filename URL
```
![][12]
Some times, curl wouldnt just download the file as you expect it to. Youll have to use option -L (for location) to download it correctly. This is because some times the links redirect to some other link and with option -L, it follows the final link.
#### Pause and resume download with curl
Like wget, you can also resume a paused download using curl with option -c:
```
curl -c URL
```
**Conclusion**
As always, there are multiple ways to do the same thing in Linux. Downloading files from the terminal is no different.
wget and curl are just two of the most popular commands for downloading files in Linux. There are more such command line tools. Terminal based web-browsers like [elinks][13], [w3m][14] etc can also be used for downloading files in command line.
Personally, for a simple download, I prefer using wget over curl. It is simpler and less confusing because you may have a difficult time figuring out why curl could not download a file in the expected format.
Your feedback and suggestions are welcome.
--------------------------------------------------------------------------------
via: https://itsfoss.com/download-files-from-linux-terminal/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lujun9972
[1]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/10/Download-Files-from-Linux-terminal.png?resize=800%2C450&ssl=1
[2]: https://www.gnu.org/software/wget/
[3]: https://itsfoss.com/install-latest-uget-ubuntu-linux-mint/
[4]: https://itsfoss.com/apt-command-guide/
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-file-in-linux-terminal-using-wget.png?resize=795%2C418&ssl=1
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-file-in-linux-terminal-using-wget-2.png?resize=795%2C418&ssl=1
[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-entire-website-using-wget.png?resize=795%2C418&ssl=1
[8]: https://curl.haxx.se/
[9]: https://linuxhandbook.com/curl-command-examples/
[10]: https://itsfoss.com/install-curl-ubuntu/
[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-files-in-linux-using-curl.png?resize=795%2C418&ssl=1
[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-files-in-linux-using-curl-1.png?resize=795%2C418&ssl=1
[13]: http://elinks.or.cz/
[14]: http://w3m.sourceforge.net/

View File

@ -0,0 +1,192 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (2 Ways to Download Files From Linux Terminal)
[#]: via: (https://itsfoss.com/download-files-from-linux-terminal/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
2 种从 Linux 终端下载文件的方法
======
如果你被困在 Linux 终端,比如说在服务器上,如何从终端下载文件?
在 Linux 中是没有下载命令的,但是有几个 Linux 命令可用于下载文件。
在这篇终端技巧中,你将学习两种在 Linux 中使用命令行下载文件的方法。
我在这里使用的是 Ubuntu但除了安装其余的命令同样适用于所有其他 Linux 发行版。
### 使用 wget 命令从 Linux 终端下载文件
![][1]
[wget][2] 也许是 Linux 和类 UNIX 系统中使用最多的命令行下载管理器。你可以使用 wget 下载一个文件、多个文件、整个目录甚至整个网站。
wget 是非交互式的,可以轻松地在后台工作。这意味着你可以很容易地在脚本中使用它,甚至构建像 [uGet 下载管理器][3]这样的工具。
让我们看看如何使用 wget 从终端下载文件。
#### 安装 wget
大多数 Linux 发行版都预装了 wget。它也可以在大多数发行版的仓库中找到你可以使用发行版的包管理器轻松安装它。
在基于 Ubuntu 和 Debian 的发行版上,你可以使用 [apt 包管理器][4]命令:
```
sudo apt install wget
```
#### 使用 wget 下载文件或网页
你只需要提供文件或网页的 URL。它将在你所在的目录下以原始名下载该文件。
```
wget URL
```
![][5]
要下载多个文件,你必须将它们的 URL 保存在一个文本文件中,并将该文件作为输入提供给 wget就像这样
```
wget -i download_files.txt
```
#### 用 wget 下载不同名字的文件
你会注意到,一个网页在 wget 中几乎总是以 index.html 的形式保存。为下载的文件提供自定义名称是个好主意。
你可以在下载时使用 -O (大写字母 O 选项来提供输出文件名。
```
wget -O filename URL
```
![][6]
#### 用 wget 下载一个文件夹
假设你正在浏览一个 FTP 服务器,你需要下载整个目录,你可以使用递归选项:
```
wget -r ftp://server-address.com/directory
```
#### 使用 wget 下载整个网站
是的,你完全可以做到这一点。你可以用 wget 镜像整个网站。我说的下载整个网站是指整个面向公众的网站结构。
虽然你可以直接使用镜像选项 -m但最好加上
* convert-links :链接将被转换,使内部链接指向下载的资源,而不是网站。
* page-requisites下载额外的东西如样式表使页面在离线状态下看起来更好。
```
wget -m --convert-links --page-requisites website_address
```
![][7]
#### 额外提示:恢复未完成的下载
如果你因为某些原因按 C 键中止了下载,你可以用选项 -c 恢复之前的下载:
```
wget -c
```
### 使用 curl 在 Linux 命令行中下载文件
和 wget 一样,[curl][8] 也是 Linux 终端中最常用的下载文件的命令之一。[使用 curl][9] 的方法有很多,但我在这里只关注简单的下载。
#### 安装 curl
虽然 curl 并不是预装的,但在大多数发行版的官方仓库中都有。你可以使用你的发行版的包管理器来安装它。
要[在 Ubuntu][10] 和其他基于 Debian 的发行版上安装 curl请使用以下命令
```
sudo apt install curl
```
#### 使用 curl 下载文件或网页
如果你在使用 curl 命令时没有在 URL 中带任何选项,它就会读取文件并打印在终端上。
要在 Linux 终端中使用 curl 命令下载文件,你必须使用 -O大写字母 O选项
```
curl -O URL
```
![][11]
在 Linux 中,用 curl 下载多个文件是比较简单的。你只需要指定多个 URL 即可:
```
curl -O URL1 URL2 URL3
```
请记住curl 不像 wget 那么简单。当 wget 将网页保存为 index.html 时curl 会抱怨远程文件没有网页的名字。你必须按照下一节的描述用一个自定义的名字来保存它。
#### 用不同的名字下载文件
这可能会让人感到困惑,但如果要为下载的文件提供一个自定义的名称(而不是原始名称),你必须使用 -o小写 O选项
```
curl -o filename URL
```
![][12]
有些时候curl 并不能像你期望的那样下载文件,你必须使用选项 -L代表位置来正确下载。这是因为有些时候链接会重定向到其他链接而使用选项 -L它就会跟随最终的链接。
#### 用 curl 暂停和恢复下载
和 wget 一样,你也可以用 curl 的 -c 选项恢复暂停的下载:
```
curl -c URL
```
**总结**
和以往一样,在 Linux 中做同一件事有多种方法。从终端下载文件也不例外。
wget 和 curl 只是 Linux 中最流行的两个下载文件的命令。还有更多这样的命令行工具。基于终端的网络浏览器,如 [elinks][13]、[w3m][14] 等也可以用于在命令行下载文件。
就个人而言,对于一个简单的下载,我更喜欢使用 wget 而不是 curl。它更简单也不会让你感到困惑因为你可能很难理解为什么 curl 不能以预期的格式下载文件。
欢迎你的反馈和建议。
--------------------------------------------------------------------------------
via: https://itsfoss.com/download-files-from-linux-terminal/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lujun9972
[1]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/10/Download-Files-from-Linux-terminal.png?resize=800%2C450&ssl=1
[2]: https://www.gnu.org/software/wget/
[3]: https://itsfoss.com/install-latest-uget-ubuntu-linux-mint/
[4]: https://itsfoss.com/apt-command-guide/
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-file-in-linux-terminal-using-wget.png?resize=795%2C418&ssl=1
[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-file-in-linux-terminal-using-wget-2.png?resize=795%2C418&ssl=1
[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-entire-website-using-wget.png?resize=795%2C418&ssl=1
[8]: https://curl.haxx.se/
[9]: https://linuxhandbook.com/curl-command-examples/
[10]: https://itsfoss.com/install-curl-ubuntu/
[11]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-files-in-linux-using-curl.png?resize=795%2C418&ssl=1
[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/10/download-files-in-linux-using-curl-1.png?resize=795%2C418&ssl=1
[13]: http://elinks.or.cz/
[14]: http://w3m.sourceforge.net/