在window下,通常下载一个文件都是通过浏览器或者下载工具来下载,可视化界面的Linux下载文件也可以通过浏览器来进行下载,然而在Linux命令行窗口下,没有浏览器,通过命令行是如何来下载文件的呢?下面就来看一下如何通过命令行来下载文件吧。
在Linux中有很多命令行工具可以下载文件的,本文主要讲解的是wget和curl通过url来下载文件,首先来看一下二者有啥区别。
有时人们会对wget和curl之间的差异感到困惑,但实际上,这很简单。混淆源于两个工具都能够从命令行下载文件。但是,除了功能上的重叠之外,命令是完全不同的。它们都用于不同(尽管相似)的事情。。
那么,哪种工具更适合这项工作呢?默认情况下,每个工具通常安装在任何Linux发行版上,因此它主要归结为用户偏好。
Wget可能具有优势,因为它更直接,更易于使用。Wget 也可以递归下载。但是curl支持FTP和HTTP之外的更多协议,并且还支持上传数据。如您所知,它们各有其优点。无论您决定使用哪一个,都可以完成对应的文件下载,只是curl命令支持的更为丰富一些。
1,使用wget命令
Wget使文件下载变得轻松轻松。下载文件的基本语法非常简单,如果执行wget提示未找到该命令,请执行“yum install wget”安装。
[root@sharplee ~]# wget https://redismodules.s3.amazonaws.com/redis-stack/redis-stack-server-7.0.0-RC1.rhel7.x86_64.tar.gz

尽管缺少GUI,wget为我们提供了有关下载的大量信息,包括下载进度,传输速度和估计完成时间。终端顶部附近的输出位只是 wget 尝试连接到服务器以下载文件。该输出可用于在下载文件时遇到问题时进行故障排除 。
那么如果一个文件下载在中途被中断了呢?这时候要如何处理呢?其实wget命令有输出标志位来查看文件中断的地方,接着执行wget -c 命令来完成文件的恢复下载。
[root@sharplee sharplee]# wget -c https://redismodules.s3.amazonaws.com/redis-stack/redis-stack-server-7.0.0-RC1.rhel7.x86_64.tar.gz

一般情况下,如果没有给wget指定任何参数而是直接通过wget加上要下载的文件名,这时候下载的文件被下载到了当前目录上,如果要下载对应的文件到特定的路径,或者下载的文件要重新命名为其它文件名,请使用wget 下载的文件 -O 要存的文件路径名以及名称( wget 文件名 -O 文件路径)。
[root@sharplee sharplee]# [root@sharplee ~]# wget https://redismodules.s3.amazonaws.com/redis-stack/redis-stack-server-7.0.0-RC1.rhel7.x86_64.tar.gz -O redis.tar

2,使用curl命令
Curl是从URL下载文件的另一个很好的实用程序。默认情况下,curl 会将文件下载到标准输出。如果要下载纯文本文件,或者要将 curl 命令传送到另一个工具,则可能没问题。但是,如果您只是将文件下载到PC,则不希望curl将一堆乱码文本发送到终端,因此您应该使用命令中的-o(输出)选项,否则下载的时候会输出很多乱码。
[root@sharplee ~]# curl https://redismodules.s3.amazonaws.com/redis-stack/redis-stack-server-7.0.0-RC1.rhel7.x86_64.tar.gz -O redis.tar

[root@sharplee ~]#curl https://redismodules.s3.amazonaws.com/redis-stack/redis-stack-server-7.0.0-RC1.rhel7.x86_64.tar.gz > redis.tar.gz

这里的输出类似于wget,其中我们显示了当前的下载速率,估计的完成时间等。

总结:在Linux中要下载文件通过命令,可以使用wget命令和curl命令,这俩命令都能完成文件的下载,但是curl命令更为丰富一些,如果只是简单的下载文件可以使用wget,如果是需要请求数据返回对应的数据使用curl加上报文头以及报文体等。
转载请注明:XAMPP中文组官网 » Linux如何下载文件通过url