zoukankan      html  css  js  c++  java
  • Linux curl与wget 命令的区别和联系

    当想要直接通过 Linux 命令行下载文件,马上就能想到两个工具:wget 和 curl。它们有很多一样的特征,可以很轻易的完成一些相同的任务。

    虽然它们有一些相似的特征,但它们并不是完全一样。这两个程序适用与不同的场合,在特定场合下,都拥有各自的特性。

    curl与wget相似之处:

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

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

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

    curl的优势:

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

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

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

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

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

    wget的优势:

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

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

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

    总结:

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

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

    ————————————————————分界线——————————————————

    ​ wget是个专职的下载利器,简单,专一,极致;而curl可以下载,但是长项不在于下载,而在于模拟提交web数据,POST/GET请求,调试网页,等等。

    ​ 在下载上,也各有所长,wget可以递归,支持断点;而curl支持URL中加入变量,因此可以批量下载。

    curl(文件传输工具)

    常用参数如下:

    -c,–cookie-jar:将cookie写入到文件

    -b,–cookie:从文件中读取cookie

    -C,–continue-at:断点续传

    -d,–data:http post方式传送数据

    -D,–dump-header:把header信息写入到文件

    -F,–from:模拟http表达提交数据

    -s,–slient:减少输出信息

    -o,–output:将信息输出到文件

    -O,–remote-name:按照服务器上的文件名,存在本地

    –l,–head:仅返回头部信息

    -u,–user[user:pass]:设置http认证用户和密码

    -T,–upload-file:上传文件

    -e,–referer:指定引用地址

    -x,–proxy:指定代理服务器地址和端口

    -w,–write-out:输出指定格式内容

    –retry:重试次数

    –connect-timeout:指定尝试连接的最大时间/s

    wget(文件下载工具)

    常用参数如下:

    1、 启动参数

    -V,–version:显示版本号

    -h,–help:查看帮助

    -b,–background:启动后转入后台执行

    2、 日志记录和输入文件参数

    -o,–output-file=file:把记录写到file文件中

    -a,–append-output=file:把记录追加到file文件中

    -i,–input-file=file:从file读取url来下载

    3、 下载参数

    -bind-address=address:指定本地使用地址

    -t,-tries=number:设置最大尝试连接次数

    -c,-continue:接着下载没有下载完的文件

    -O,-output-document=file:将下载内容写入到file文件中

    -spider:不下载文件

    -T,-timeout=sec:设置响应超时时间

    -w,-wait=sec:两次尝试之间间隔时间

    –limit-rate=rate:限制下载速率

    -progress=type:设置进度条

    4、目录参数

    -P,-directory-prefix=prefix:将文件保存到指定目录

    5、 HTTP参数

    -http-user=user:设置http用户名

    -http-passwd=pass:设置http密码

    -U,–user-agent=agent:伪装代理

    -no-http-keep-alive:关闭http活动链接,变成永久链接

    -cookies=off:不使用cookies

    -load-cookies=file:在开始会话前从file文件加载cookies

    -save-cookies=file:在会话结束将cookies保存到file文件

    6、 FTP参数

    -passive-ftp:默认值,使用被动模式

    -active-ftp:使用主动模式

    7、 递归下载排除参数

    -A,–accept=list:分号分割被下载扩展名的列表

    -R,–reject=list:分号分割不被下载扩展名的列表

    -D,–domains=list:分号分割被下载域的列表

    –exclude-domains=list:分号分割不被下载域的列表
    转自:(https://blog.csdn.net/yushupan/article/details/83578633)

  • 相关阅读:
    「四步接入」开启秀场直播,揭秘七牛云互动直播解决方案
    【直播预告】揭秘互动直播,技术咖携手美女主播解读直播背后那点事儿
    初识k8s(基础概念加历史了解)(一)
    Linux lsof命令的使用示例
    Linux netstat:查看网络状态
    Linux uname命令:查看系统和内核相关信息
    系统环境变量PATH的设置与查看,以Mac为例
    Shell echo命令
    Linux which命令
    【转译】每个Python开发者都应该掌握的8种数据结构
  • 原文地址:https://www.cnblogs.com/liuzhixian666/p/13829357.html
Copyright © 2011-2022 走看看