≡菜单

wget vs curl:如何使用wget和curl下载文件

题: 我通常使用wget下载文件。在某些系统上,未安装wget,仅可使用curl。您能用一个简单的示例向我解释一下如何使用curl下载远程文件吗? curl和wget之间有什么区别吗?

回答: 从高级的角度来说,wget和curl都是命令行工具,它们执行相同的操作。

  • 它们都可以用于通过FTP和HTTP下载文件。
  • 您还可以使用curl和wget发送HTTP POST请求
  • 但是curl提供的API可供程序员在自己的代码中使用。 curl使用libcurl,它是一个跨平台的库。
  • wget只是没有任何API的命令行工具。
  • Curl还支持wget不支持的更多协议’支持。例如:SCP,SFTP,TFTP,TELNET,LDAP(S),FILE,POP3,IMAP,SMTP,RTMP和RTSP。
  • 使用wget有一个主要优点。 wget支持递归下载,而curl不支持 ’t.

Wget示例

以下示例下载文件并以与远程服务器相同的名称存储。

wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

以下示例下载文件并以与远程服务器不同的名称存储。当远程URL不能’如下例所示,在URL中包含文件名。

wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

更多wget示例: Ultimate Wget下载指南,其中包含15个很棒的示例

卷曲示例

$ curl -O http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
  % 总   % 已收到% Xferd Average Speed   Time    Time     Time  Current
                                 Dload  Upload   总  Spent    Left  Speed
 28 3762k   28 1085k    0     0  72771      0  0:00:52  0:00:15  0:00:37 54267

选项-O(大写O)很重要。没有这个,curl将开始将下载的文件转储到标准输出上。使用-O,它将以与远程服务器相同的名称下载文件。在上面的示例中,我们正在下载strx25-0.9.2.1.tar.bz2,因此下载的文件也将具有相同的名称。

您还可以指定-O而不是-O,“–remote-name”如下所示。两者是相同的。

$ curl --remote-name http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

在下载curl时,它会提供以下有用的信息:

  • % –截至目前已完成下载的总百分比。当达到100%时,下载完成。在上面的示例中,它仅下载了文件的28%。
  • 总–文件总大小
  • 已收到–到目前为止已下载的文件的总大小。在上面的示例中,到目前为止,它已下载了1085k(总共3762k)
  • Xferd–当您将一些文件上传到远程服务器时,将使用此文件。在上传过程中,这将指示到目前为止已上传文件的总大小。由于我们正在下载文件,因此在此示例中,该值为0。
  • 平均速度负荷–这表示平均下载速度。
  • 平均速度上传–上传文件时,这将指示平均上传速度
  • 总时间–这表示根据当前下载(或上传)速度下载(或上传)整个文件所需的总时间。在此示例中,下载该文件大约总共需要52秒。
  • 时间花费–到目前为止,curl花费的时间用于下载(或上传)文件。在此示例中,到目前为止已花费了15秒。
  • 剩下的时间–这是基于“Time Total” – “Time Spent”.
  • 现在的速度–这表示当前的下载/上传速度。将此与平均Spped Dload / UPload进行比较,以查看系统当前的下载速度。

如果要下载文件并以与远程服务器中文件名不同的名称存储,请使用-o(小写o),如下所示。当远程URL不能’如下例所示,在URL中包含文件名。

$  curl -o taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
  % 总   % 已收到% Xferd Average Speed   Time    Time     Time  Current
                                 Dload  Upload   总  Spent    Left  Speed
100 50243  100 50243    0     0   170k      0 --:--:-- --:--:-- --:--:--  400k

在上面的示例中,远程URL中没有文件名,它只是调用一个向其传递一些参数的php脚本。但是,该文件将被下载并保存为本地系统上的taglist.zip。您还可以指定-o而不是-o,“–output”.

更多curl示例: 15个实用的Linux cURL命令示例

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 


{ 17 评论… 加一 }

  • 贾拉尔·哈吉霍拉玛利 2012年7月6日,上午8:48

    你好

    谢谢,非常好的文章

  • 马诺 2012年7月6日,上午9:19

    非常感谢您提供的信息……对很多人有帮助

  • 2012年7月9日,上午12:59

    您肯定知道如何发表有用的帖子!

  • 贾廷 2012年7月31日,上午10:48

    有什么方法可以使用wget或curl从站点下载特定类型的文件?
    假设我只想从我的网站下载.jpg文件。

  • 普拉文 2012年8月1日,上午5:46

    谢谢..很好的信息..

  • G 加耶特里 Soumya 2013年2月13日,晚上10:35

    你好

    我正在尝试从GE库下载文件。但是,在下载之前,我们需要登录GE网络。因此,是否可以选择在代码中提供登录凭据(例如我的用户名和密码),以便我下载文件。
    请分享您的评论,

    感谢您的帮助。

    谢谢
    加耶特里

  • 乔恩 2013年5月14日,上午6:25

    我如何使用它从我的网站上下载最新版本的text.txt文件?

  • 萨沙 2014年4月16日,上午9:34

    多谢!

  • Mirak 2014年4月27日,下午12:31

    我想下载视频文件

  • Ashish makwana 2014年10月16日上午6:41

    这很棒。我爱你的代码。非常感谢…您的网站成为天使形式,因为我很累找出wget最佳使用code.thanks。

  • 马赫什 2014年11月2日,晚上10:00

    感谢您提供所有有用的帖子,并继续进行出色的工作。

  • 马赫什 2014年11月2日,晚上10:01

    感谢您提供所有有用的帖子,并继续进行出色的工作。

  • el 2015年6月14日,上午12:39

    谢谢。请帮助我回答文件中断时如何恢复下载文件?
    祝你有美好的一天。

  • 重要花花公子 2015年9月14日,上午1:56

    It’可能还明智的做法是还将-L选项与curl一起使用,该选项将跟随所有HTTP重定向。

  • 哈恩斯 2016年5月18日,下午7:33

    如果站点要求身份验证才能下载,该怎么办?例如:mysql二进制?

    http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar

  • Shubham Gupta 一月4,2017,5:29上午

    你好

    感谢您的文章。

    2个快速问题-
    (1)。当我跟随使用curl -O示例时,为什么正在下载的文件的文件名为“pdf?cycleId=1”从我的请求中提取最后2个单词在哪里?

    (2)。我想知道如何使用curl -O传递方法类型(GET或POST)?

  • 菲尔 2017年5月1日,晚上10:45

    使用curl,我如何从超时后结束的地方继续下载

发表评论