zoukankan      html  css  js  c++  java
  • Linux的curl和wget

    wget

    wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

    语法:
    wget(选项)(URL)

    常见参数:

    -a<日志文件>:在指定的日志文件中记录资料的执行过程; -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔; -b:进行后台的方式运行wget; -B<连接地址>:设置参考的连接地址的基地地址; -c:继续执行上次终端的任务; -C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on; -d:调试模式运行指令; -D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔; -e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令; -h:显示指令帮助信息; -i<文件>:从指定文件获取要下载的URL地址; -l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔; -L:仅顺着关联的连接; -r:递归下载方式; -nc:文件存在时,下载文件不覆盖原有文件; -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程; -q:不显示指令执行过程; -nh:不查询主机名称; -v:显示详细执行过程; -V:显示版本信息; --passive-ftp:使用被动模式PASV连接FTP服务器; --follow-ftp:从HTML文件中下载FTP连接文件。

    来自: http://man.linuxde.net/wget
    -a<日志文件>:在指定的日志文件中记录资料的执行过程; -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔; -b:进行后台的方式运行wget; -B<连接地址>:设置参考的连接地址的基地地址; -c:继续执行上次终端的任务; -C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on; -d:调试模式运行指令; -D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔; -e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令; -h:显示指令帮助信息; -i<文件>:从指定文件获取要下载的URL地址; -l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔; -L:仅顺着关联的连接; -r:递归下载方式; -nc:文件存在时,下载文件不覆盖原有文件; -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程; -q:不显示指令执行过程; -nh:不查询主机名称; -v:显示详细执行过程; -V:显示版本信息; --passive-ftp:使用被动模式PASV连接FTP服务器; --follow-ftp:从HTML文件中下载FTP连接文件。

    来自: http://man.linuxde.net/wget

      -a<日志文件>:在指定的日志文件中记录资料的执行过程;

      -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;
      -b:进行后台的方式运行wget;
      -B<连接地址>:设置参考的连接地址的基地地址;
      -c:继续执行上次终端的任务;
      -C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;
      -d:调试模式运行指令;
      -D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;
      -e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令; -h:显示指令帮助信息;
      -i<文件>:从指定文件获取要下载的URL地址;
      -l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;
      -L:仅顺着关联的连接;
      -r:递归下载方式;
      -nc:文件存在时,下载文件不覆盖原有文件;
      -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程;
      -q:不显示指令执行过程;
      -nh:不查询主机名称;
      -v:显示详细执行过程;
      -V:显示版本信息;
      --passive-ftp:使用被动模式PASV连接FTP服务器;
      --follow-ftp:从HTML文件中下载FTP连接文件。

    1.wget下载单个文件:
    wget http://www.linuxde.net/testfile.zip
    下载文件保存到当前目录,文件名默认是url最后一个/后面的内容,这里就是testfile.zip通过-O参数,可以指定文件名,这里指定的是mytest:
    wget -O mytest http://www.linuxde.net/testfile.zip
    
    
    2.限速下载:
    wget --limit-rate=300k http://www.linuxde.net/testfile.zip
    
    当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。
    
    
    3.简单的wget使用:    
    wget www.baidu.com
    会在当前目录生成一个index.html文件
    
    4.使用wget断点续传:
    wget -c http://www.linuxde.net/testfile.zip
    
    使用wget -c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。



    curl

    curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。

    语法:

    curl [option] [url]

    常见参数:

        -A/--user-agent <string> 设置用户代理发送给服务器
        -b/--cookie <name=string/file> cookie字符串或文件读取位置
        -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
        -C/--continue-at <offset> 断点续转
        -D/--dump-header <file> 把header信息写入到该文件中
        -e/--referer 来源网址,可用来伪造referer
        -f/--fail 连接失败时不显示http错误
        -o/--output 把输出写到该文件中
        -O/--remote-name 把输出写到该文件中,使用远程文件的文件名
        -r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围
        -s/--silent 静音模式。不输出任何东西
        -T/--upload-file <file> 上传文件
        -u/--user <user[:password]> 设置服务器的用户和密码
        -w/--write-out [format] 什么输出完成后
        -x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
        -#/--progress-bar 进度条显示当前的传送状态
        -I/--head 只显示请求头信息

    1.下载文件:
    curl http://www.linuxde.net/testfile.zip
    下载文件保存到当前目录,文件名默认是url最后一个/后面的内容,这里是testfile.zip
    注意:必须要加-O参数,否则是直接在控制台上显示文件内容了,且必须使用文件的绝对地址。
       例,curl http://www.linuxde.net/testfile.zip -o /home/index.html
    
    2.curl能够从特定的文件偏移处继续下载,它可以通过指定一个便宜量来下载部分文件:
    curl URL/File -C
    
    偏移量 #偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C -:
    curl -C -URL
    
    
    3.用curl设置cookies
    使用--cookie "COKKIES"选项来指定cookie,多个cookie使用分号分隔:
    curl http://man.linuxde.net --cookie "user=root;pass=123456"
     将cookie另存为一个文件,使用--cookie-jar选项:
       curl URL --cookie-jar cookie_file

    4.伪造referer
    curl -e "www.linux.com" http://mail.linux.com

    5.显示进度
    curl www.baidu.com -o index.html --progress


    6.设置用户代理
    curl URL --user-agent "Mozilla/5.0" 或 curl URL -A "Mozilla/5.0"
     


    wget和curl的区别:

    wget是个专职的下载利器,简单,专一,极致;而curl可以下载,但是长项不在于下载,而在于模拟提交web数据,POST/GET请求,调试网页,等等。在下载上,也各有所长,wget可以递归,支持断点;而curl支持URL中加入变量,因此可以批量下载。个人用途上,用wget来下载文件,加 -c选项可以实现断点续传;使用curl 来跟网站的API 交互,简便清晰。

          1.curl是libcurl这个库支持的,wget是一个纯粹的命令行命令。

          2.curl支持更多的协议。curl supports FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS,FILE, POP3, IMAP, SMTP and RTSP at the time of this writing. Wget supports HTTP, HTTPS and FTP。

          3.curl 默认支持HTTP1.1(也支持1.0),而wget仅仅支持HTTP1.0规范。

          4.curl在指定要下载的链接时能够支持URL的序列或集合,而wget则不能这样;

          5.wget支持递归下载,而curl则没有这个功能。(这是wget的一个主要好处,wget也是有优势的。)

  • 相关阅读:
    linux安装mongodb磁盘空间不足
    ccf颁奖晚会
    Bug总结流程
    测试自学过程
    一个div,包含两个div,调整文字位置和div平均分布
    一个div,包含三个小的div,平均分布的样式
    测试成长之路
    k8s常用命令记录
    K8S 1.20.6安装dashboard(基于kubernetes-dashboard 2.0.0版本)
    F. Programming Contest
  • 原文地址:https://www.cnblogs.com/Downtime/p/8068097.html
Copyright © 2011-2022 走看看