你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Linux中最流行的两个下载文件的命令

[复制链接]
gaosmile 发布时间:2020-10-23 18:53
如果您坚持使用Linux终端,例如在服务器上,该如何从终端下载文件?本文中你将学习两种在Linux中使用命令行下载文件的方法。我在这里使用的是Ubuntu,但除了安装之外,其余的命令同样适用于所有其他Linux发行版。 微信图片_20201023185214.png
01
! U( e  l1 O1 G, m
使用wget命令从Linux终端下载文件
wget可能是Linux和类UNIX系统中使用最多的命令行下载管理器。你可以使用wget下载一个文件、多个文件、整个目录甚至整个网站。$ V& i- a8 L( B2 u- F: o
wget是非交互式的,可以轻松的在后台工作。这意味着你可以很容易地在脚本中使用它,甚至可以构建uGet下载管理器之类的工具。让我们看看如何使用wget从终端下载文件。
: C6 f# i' S3 @* G, p& w※
. E# p: S' V1 r/ g9 q/ ~8 y0 K0 d6 V: x$ ~

6 f1 j' l0 A) @' ~# ?: _2 c* O7 I

安装wget

大多数Linux发行版都预装了wget。也可以在大多数发行版的软件库中找到它,你可以使用发行版的软件包管理器轻松安装它。在基于Ubuntu和Debian的发行版上,你可以使用apt包管理器命令:sudo apt install wget: l8 B6 ^9 l& O  k7 U9 `
<以上代码可复制粘贴,可往左滑>
: L# y. h7 C7 G, @※; |( q* m0 K! S, W$ E* l

: `8 g* g+ L: n2 L$ w0 W. T
: t7 j4 O3 T$ s" p; ]7 N  H

使用wget下载文件或网页

您只需要提供文件或网页的URL。它将以默认原始名称下载文件到您所在的目录中。wget URL" ]) \  c  S4 `6 F/ U
<以上代码可复制粘贴,可往左滑>
# S, F! p1 r9 Q8 t
微信图片_20201023185217.png

1 @; N4 X  ^: e# r0 Y' [
要下载多个文件,您必须将它们的URL保存在一个文本文件中,并提供该文本文件作为wget的输入,如下所示:wget -i download_files.txt
# J  x4 e$ O$ x2 x$ T' r. Z
<以上代码可复制粘贴,可往左滑>" 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
微信图片_20201023185220.png
  v. s% S+ k* v  d7 f

" j$ ?1 `5 u2 S1 E※! a( E- L& K* J7 n- _0 f' |
( z" P; A4 f/ I9 ^

9 Y4 T; _( [8 X  _' q

使用wget下载文件夹

假设您正在浏览FTP服务器,并且需要下载整个目录,则可以使用递归选项wget -r ftp://server-address.com/directorywget -O filename URL2 X5 [7 x: ]7 s
<以上代码可复制粘贴,可往左滑>
0 S4 h4 w/ D$ i! _! z※4 d1 ^6 K# m0 {0 {" g

% Y7 X7 H& U& X9 T
5 N. [: |# Z2 Z3 V

使用wget下载整个网站

你可以用wget镜像整个网站。我说的下载整个网站是指整个面向公众的网站结构。虽然您可以直接使用mirror选项-m,但是最好添加:
: F% q- r* R8 ^" r4 v
  • –convert-links:转换链接,以便内部链接指向下载的资源而不是Web
  • –page-conditions:下载其他内容,例如样式表,以使页面在脱机状态下看起来更好
    5 w  Q. `) u8 `6 B1 q

; c6 S6 m0 g# V/ X/ Z6 c. l
wget -m --convert-links --page-requisites website_addres
+ a4 p! L" [7 o0 ?+ f+ V
<以上代码可复制粘贴,可往左滑>
$ f8 g' D; j: ^) @( o6 I4 @2 t
微信图片_20201023185223.png

9 G  W- N$ @7 B, W, \* D
2 U3 R' Q2 T* j/ `6 l
※  r( Q9 C( o8 U$ S+ P

- ~2 d8 }, V; i6 C$ [
: K1 i2 y9 Q% h  n. h! }

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

如果你因为某些原因按C键中止了下载,你可以用选项-c恢复之前的下载。wget -c
: W+ D7 {8 C* I1 J4 H
<以上代码可复制粘贴,可往左滑>
2
1 j6 D: W2 l9 L) P
使用curl从Linux命令行下载文件
和wget一样,curl也是Linux终端中最常用的下载文件的命令之一。有很多方法可以广泛地使用curl,但我在这里只关注简单的下载。: c2 W  g6 a; C3 ?5 v
※
2 l9 p+ G: w  {& u0 A( ?& ~0 G- I+ C) i$ E

% X% k8 e# h% y3 q, }5 q6 o

安装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
※
3 g3 i1 r$ D( U; X: F. b. W; _/ @1 o' ^* v4 l& c$ r# I9 y6 _$ p7 U  }

: e2 s! d/ E  O$ G; y

使用curl下载文件或网页

如果你在使用curl命令时没有任何带URL的选项,它就会读取文件并打印在终端屏幕上。要在Linux终端中使用curl命令下载文件,必须使用-O(大写O)选项:curl -O URL/ f+ M- m3 V# P; I3 t
<以上代码可复制粘贴,可往左滑>

2 W: x$ |$ z! S+ C; P: c+ o
微信图片_20201023185226.png
" Q: w1 _0 N) I) F! R0 K  g7 Z
在Linux中,用curl下载多个文件是比较简单的。您只需要指定多个URL:curl -O URL1 URL2 URL3
. Q; {5 x6 l3 G0 H  k
<以上代码可复制粘贴,可往左滑>
- 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

下载其他名称的文件


8 N0 g* `9 |4 x! U* U
这可能会让人感到困惑,但如果要为下载的文件提供一个自定义的名称(而不是原始的源名称),则必须使用-o(小写O)选项:

: a8 w+ a4 ?4 `+ [5 R
curl -o filename URL
1 B' h( v3 ?$ ?
<以上代码可复制粘贴,可往左滑>
0 o% c# r  @" O5 h. {& [" ~; U# k
微信图片_20201023185230.png
有些时候,curl并不能像你期望的那样下载文件,你必须使用选项-L(代表位置)来正确下载。这是因为有些时候链接会重定向到其他链接,而使用选项-L,它就会跟随最终的链接。
3 i  q! y. j9 [* b% j: Y
' E6 s1 c% s& b2 {  X8 k
※
( w' m, Q4 _' y$ g' z1 F( p0 g  u0 A/ W: b* j% N3 E

) y3 K) X7 e" I4 a1 q8 D

用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

5 \2 K* [2 T9 i& z. G- f2 v. f6 X8 u. F

结  论

在Linux中有多种方法可以执行相同的操作。从终端下载文件也不例外。wget和curl只是Linux中最流行的两个下载文件的命令。还有更多这样的命令行工具。基于终端的网络浏览器,例如elinks,w3m等,也可以用于在命令行中下载文件。就个人而言,对于一个简单的下载,我更喜欢使用wget而不是curl。因为wget更简单,也更不容易混淆,因为你可能很难理解为什么curl不能以预期的格式下载文件。
8 R5 v6 d0 H- [) k# W* A0 Q; n
赞 收藏 评论0 发布时间:2020-10-23 18:53

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版