wget和curl的区别以及常用命令的不同

前言

当想要直接通过 Linux 命令行下载文件,马上就能想到两个工具:wget 和 curl。它们有很多一样的特征,可以很轻易的完成一些相同的任务,虽然它们有一些相似的特征,但它们并不是完全一样。这两个程序适用与不同的场合,在特定场合下,都拥有各自的特性。

wget简介

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。“wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。

所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。

curl简介

curl是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。curl还包含了用于程序开发的libcurl。

curl支持的通信协议有FTPFTPSHTTPHTTPSTFTPSFTPGopherSCPTelnet、DICT、FILELDAP、LDAPS、IMAPPOP3SMTPRTSP

curl还支持SSL认证、HTTP POST、HTTP PUT、FTP上传, HTTP form based upload、proxies、HTTP/2、cookies、用户名+密码认证(Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos)、file transfer resume、proxy tunneling。

wget和curl的共同点

wget 和 curl 都可以下载内容。它们的核心就是这么设计的。它们都可以向互联网发送请求并返回请求项。这可以是文件、图片或者是其他诸如网站的原始 HTML 之类。

这两个程序都可以进行 HTTP POST 请求。这意味着它们都可以向网站发送数据,比如说填充表单什么的。

由于这两者都是命令行工具,它们都被设计成可脚本化。wget 和 curl 都可以写进你的 Bash 脚本 ,自动与新内容交互,下载所需内容

wget和curl的不同点

非要说区别的话,curl由于可自定义各种请求参数所以在模拟web请求方面更擅长;wget由于支持ftp和Recursive所以在下载文件方面更擅长。类比的话curl是浏览器,而wget是迅雷9。

wget 简单直接。这意味着你能享受它超凡的下载速度。wget 是一个独立的程序,无需额外的资源库,更不会做其范畴之外的事情。

wget 是专业的直接下载程序,支持递归下载。同时,它也允许你下载网页中或是 FTP 目录中的任何内容。

wget 拥有智能的默认设置。它规定了很多在常规浏览器里的事物处理方式,比如 cookies 和重定向,这都不需要额外的配置。可以说,wget 简直就是无需说明,开罐即食!

curl是一个多功能工具。当然,它可以下载网络内容,但同时它也能做更多别的事情。

curl 技术支持库是:libcurl。这就意味着你可以基于 curl 编写整个程序,允许你基于 libcurl 库中编写图形环境的下载程序,访问它所有的功能。

curl 宽泛的网络协议支持可能是其最大的卖点。curl 支持访问 HTTP 和 HTTPS 协议,能够处理 FTP 传输。它支持 LDAP 协议,甚至支持 Samba 分享。实际上,你还可以用 curl 收发邮件。

curl 也有一些简洁的安全特性。curl 支持安装许多 SSL/TLS 库,也支持通过网络代理访问,包括 SOCKS。这意味着,你可以越过 Tor 来使用curl。

curl 同样支持让数据发送变得更容易的 gzip 压缩技术

wget和curl之间常用命令的区别

1.下载文件
curl -O http://mirrors.aliyun.com/repo/Centos-7.repo                   // O大写,不用O只是打印内容不会下载
wget http://mirrors.aliyun.com/repo/Centos-7.repo                      // 不用参数,直接下载文件

2.下载文件并重命名
curl -o rename.iso http://mirrors.aliyun.com/repo/Centos-7.repo         // o小写
wget -O rename.zip http://mirrors.aliyun.com/repo/Centos-7.repo         // O大写

3.断点续传
curl -O -C http://mirrors.aliyun.com/repo/Centos-7.repo               	// O大写,C大写
wget -c http://mirrors.aliyun.com/repo/Centos-7.repo                    // c小写

4.限速下载
curl --limit-rate 50k -O http://mirrors.aliyun.com/repo/Centos-7.repo
wget --limit-rate=50k http://mirrors.aliyun.com/repo/Centos-7.repo

5.显示响应头部信息
curl -I http://mirrors.aliyun.com/repo/Centos-7.repo
wget --server-response http://mirrors.aliyun.com/repo/Centos-7.repo

6.wget利器–打包下载网站
wget --mirror -p --convert-links -P /var/www/html http://mirrors.aliyun.com/repo/Centos-7.repo

如何选择使用wget还是curl

那我们应该使用 curl 还是使用 wget?这个比较得看实际用途。如果我们想快速下载并且没有担心参数标识的需求,那我们应该使用轻便有效的 wget。如果我们想做一些更复杂的使用,直觉告诉我们,我们应该选择 curl。

curl 支持我们做很多事情。我们可以把 curl 想象成一个精简的命令行网页浏览器。它支持几乎我们能想到的所有协议,可以交互访问几乎所有在线内容。唯一和浏览器不同的是,curl 不会渲染接收到的相应信息。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值