Linux/Unix curl命令下载文件示例

时间:2020-01-09 14:16:11  来源:igfitidea点击:

如何在Linux/Mac OS X/BSD或类似Unix的操作系统下使用curl命令行下载文件?

GNU wget是一个免费实用程序,用于从Web非交互式下载文件。

curl是使用支持的协议之一(例如HTTP,HTTPS,FTP,FTPS,SCP,SFTP,TFTP,DICT,TELNET,LDAP或FILE)从服务器或向服务器传输数据的另一种工具。
该命令设计为无需用户干预即可工作。

curl提供许多功能,例如:

  • 代理支持。
  • 用户认证。
  • FTP上传。
  • HTTP发布。
  • SSL连接。
  • Cookie。
  • 文件传输恢复等。

curl下载文件

语法如下,以从远程http/ftp服务器获取(下载)文件:

curl -o output.file http://server1.theitroad.local/file.tar.gz
curl -O http://server1.theitroad.local/file.tar.gz
curl --remote-name http://server1.theitroad.local/file.tar.gz

您可以下载网页并将其存储在本地文件中,如下所示:

curl -o theitroad.html https://www.theitroad.local/low.html

您可以按以下方式获取或下载多个文件:

curl -O http://www.theitroad.local/low.html -O http://bash.theitroad.local/dl/581.sh.zip

从SSH服务器curl下载文件

您可以使用SFTP从SSH服务器安全地抓取文件:

curl -u username sftp://server1.theitroad.local/path/to/file.txt
## ~ means your $HOME dir ##
curl -u Hyman sftp://home1.theitroad.local/~/docs/resume.pdf

您可以使用专用密钥通过SCP使用SSH服务器从SSH服务器获取文件。
语法为:

curl -u username: --key ~/.ssh/id_rsa --pubkey ~/.ssh/id_rsa.pub scp://home1.theitroad.local/~/Videos/rhn_register.ogv

其中:

  • -u用户名指定用于服务器身份验证的用户名(和可选密码)。
  • -u用户名:密码指定用于服务器身份验证的用户名(和可选密码)。
  • key~/.ssh/id_rsaSSL或SSH私钥文件名。允许您在此单独的文件中提供私钥。
  • pubkey~/.ssh/id_rsa.pubSSH公钥文件名。允许您在此单独的文件中提供公钥。
  • scp://home1.theitroad.local/~/Videos/rhn_register.ogv使用scp协议并从我的家庭服务器home1.theitroad.local下载文件。

curl:使用用户名和密码下载文件

使用ftp用户名和密码来抓取文件的语法如下:

curl ftp://username:[email protected]:21/path/to/backup.tar.gz

或者

curl -u UserName:PassWord ftp://ftp1.theitroad.local:21/backups/07/07/2012/mysql.blog.sql.tar.gz

安全的ftp用户(带ssl的ftp)可以将ftp-ssl选项传递给curl命令:

curl --ftp-ssl -u UserName:PassWord ftp://ftp1.theitroad.local:21/backups/07/07/2012/mysql.blog.sql.tar.gz

HTTP身份验证和使用curl下载文件

HTTP用户可以使用以下语法:

curl http://username:[email protected]/file/path/data.tar.gz

或者

curl -u Username:Password http://server1.theitroad.local/file/path/data.tar.gz