Linux【2】-管理文件-5-linux常用下载命令--Curl

Curl也是Linux下不错的命令行下载工具,小巧、高速,唯一的缺点是不支持多线程下载。

http://curl.haxx.se/download/curl-7.14.0.tar.gz

下载最新版本。下载后便可使用如下命令编译安装:

#tar zxvf curl-7.14.0.tar.gz
#cd curl-7.14.0/
#./configure
#make
#make test
#make install

Curl使用格式如下: #curl [选项][下载地址] Curl典型下载如下:

#curl -O http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz 

使用Curl下载一个文件并保存到当前目录。此外,Curl虽然不支持多线程下载,但它可同时下载多个文件或下载文件的某一部分,可使用如下命令实现:

#curl -r 0-199 http://www.netscape.com/ 

获得文件的前200bytes。对于常用的代理下载Curl也可轻松实现,具体操作如下:

#curl -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 

使用代理地址为10.1.27.10端口为1022的代理服务器下载一个文件。

#curl -U user:passwd -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 

如果代理服务器需要特别的验证,则需要在user:passwd处输入合法的帐号和密码。

5.2 wget与curl的区别

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

5.3 curl的讨论

5.3.1. CURL设置超时时间

使用CURL时,有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间。 连接超时时间用–connect-timeout参数来指定,数据传输的最大允许时间用-m参数来指定。

curl --connect-timeout 10 -m 20 "http://XXXXXXX"

连接超时的话,出错提示形如:

curl: (28) connect() timed out!

数据传输的最大允许时间超时的话,出错提示形如:

curl: (28) Operation timed out after 2000 milliseconds with 0 bytes received

断点续传

Use “-C -” to tell curl to automatically find out where/how to resume the transfer. It then uses the given output/input files to figure that out.

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn