如果您坚持使用Linux终端,例如在服务器上,该如何从终端下载文件?本文中你将学习两种在Linux中使用命令行下载文件的方法。我在这里使用的是Ubuntu,但除了安装之外,其余的命令同样适用于所有其他Linux发行版。
01 ! U( e l1 O1 G, m使用wget命令从Linux终端下载文件 wget可能是Linux和类UNIX系统中使用最多的命令行下载管理器。你可以使用wget下载一个文件、多个文件、整个目录甚至整个网站。$ V& i- a8 L( B2 u- F: owget是非交互式的,可以轻松的在后台工作。这意味着你可以很容易地在脚本中使用它,甚至可以构建uGet下载管理器之类的工具。让我们看看如何使用wget从终端下载文件。 ※ 9 q/ ~8 y0 K0 d6 V: x$ ~ 安装wget 大多数Linux发行版都预装了wget。也可以在大多数发行版的软件库中找到它,你可以使用发行版的软件包管理器轻松安装它。在基于Ubuntu和Debian的发行版上,你可以使用apt包管理器命令:sudo apt install wget: l8 B6 ^9 l& O k7 U9 `<以上代码可复制粘贴,可往左滑> ※; |( q* m0 K! S, W$ E* l 使用wget下载文件或网页 您只需要提供文件或网页的URL。它将以默认原始名称下载文件到您所在的目录中。wget URL" ]) \ c S4 `6 F/ U<以上代码可复制粘贴,可往左滑> # S, F! p1 r9 Q8 t
<以上代码可复制粘贴,可往左滑>" h0 t; ^$ q$ h# G" Y/ p ※$ j: n+ s. ]/ W' \ . @! W( W+ \# g+ [+ X% ]8 g ) M" z5 h2 Y4 ^8 h' x: l5 | 使用wget下载名称不同的文件 您会注意到,网页几乎总是以index.html的形式保存在wget中。为下载的文件提供自定义名称将是一个好主意。你可以使用-O(大写字母O)选项来提供下载时的输出文件名。wget -O filename URL6 Q7 @% S( W, x4 m<以上代码可复制粘贴,可往左滑> " Y! G4 Q4 I9 W" }( t
v. s% S+ k* v d7 f ※! a( E- L& K* J7 n- _0 f' | ( z" P; A4 f/ I9 ^ 使用wget下载文件夹 假设您正在浏览FTP服务器,并且需要下载整个目录,则可以使用递归选项wget -r ftp://server-address.com/directorywget -O filename URL2 X5 [7 x: ]7 s<以上代码可复制粘贴,可往左滑> ※4 d1 ^6 K# m0 {0 {" g 使用wget下载整个网站 你可以用wget镜像整个网站。我说的下载整个网站是指整个面向公众的网站结构。虽然您可以直接使用mirror选项-m,但是最好添加:: F% q- r* R8 ^" r4 v
<以上代码可复制粘贴,可往左滑> $ f8 g' D; j: ^) @( o6 I4 @2 t
※ r( Q9 C( o8 U$ S+ P 额外提示:恢复未完成的下载 如果你因为某些原因按C键中止了下载,你可以用选项-c恢复之前的下载。wget -c<以上代码可复制粘贴,可往左滑> 2 1 j6 D: W2 l9 L) P使用curl从Linux命令行下载文件 和wget一样,curl也是Linux终端中最常用的下载文件的命令之一。有很多方法可以广泛地使用curl,但我在这里只关注简单的下载。: c2 W g6 a; C3 ?5 v※ 0 A( ?& ~0 G- I+ C) i$ E 安装curl 虽然curl并不是预装的,但在大多数发行版的官方软件库中都有。你可以使用你的发行版的软件包管理器来安装它。要在Ubuntu和其他基于Debian的发行版上安装curl,请使用以下命令:sudo apt install curl, X f; M7 q7 s4 L3 L6 ~, L<以上代码可复制粘贴,可往左滑>9 d" H* d- L Y, a+ ?, r ※ * v4 l& c$ r# I9 y6 _$ p7 U } 使用curl下载文件或网页 如果你在使用curl命令时没有任何带URL的选项,它就会读取文件并打印在终端屏幕上。要在Linux终端中使用curl命令下载文件,必须使用-O(大写O)选项:curl -O URL/ f+ M- m3 V# P; I3 t<以上代码可复制粘贴,可往左滑>
" Q: w1 _0 N) I) F! R0 K g7 Z 在Linux中,用curl下载多个文件是比较简单的。您只需要指定多个URL:curl -O URL1 URL2 URL3<以上代码可复制粘贴,可往左滑> - h# b8 O8 t# H: ^) j2 I/ i 请记住,curl不像wget那么简单。当wget将网页保存为index.html时,curl会抱怨远程文件没有网页名称。你必须使用下一部分中所述的自定义名称保存它。% \( i: \$ b" b 9 a- P) N w E1 e" E ~ 7 p$ j6 Z, k) u+ V0 F& j5 x※+ i- y1 c5 J( a" d/ R # ^+ Z* ^7 z2 H4 c: k; e % J2 G/ _+ `6 I) _* z) O9 s3 J 下载其他名称的文件 这可能会让人感到困惑,但如果要为下载的文件提供一个自定义的名称(而不是原始的源名称),则必须使用-o(小写O)选项: <以上代码可复制粘贴,可往左滑> 0 o% c# r @" O5 h. {& [" ~; U# k
有些时候,curl并不能像你期望的那样下载文件,你必须使用选项-L(代表位置)来正确下载。这是因为有些时候链接会重定向到其他链接,而使用选项-L,它就会跟随最终的链接。 3 i q! y. j9 [* b% j: Y ' E6 s1 c% s& b2 { X8 k※ 0 A/ W: b* j% N3 E 用curl暂停和继续下载 与wget一样,也可以使用带有-c选项的curl恢复暂停的下载:curl -c URL$ E, Z: S' D r; E5 O/ D<以上代码可复制粘贴,可往左滑>/ R9 s9 D+ \( F; q* ` ※5 L; X* [7 j% }; d6 O - f2 v. f6 X8 u. F 结 论 在Linux中有多种方法可以执行相同的操作。从终端下载文件也不例外。wget和curl只是Linux中最流行的两个下载文件的命令。还有更多这样的命令行工具。基于终端的网络浏览器,例如elinks,w3m等,也可以用于在命令行中下载文件。就个人而言,对于一个简单的下载,我更喜欢使用wget而不是curl。因为wget更简单,也更不容易混淆,因为你可能很难理解为什么curl不能以预期的格式下载文件。 |
微信公众号
手机版