Linux文件下载
Linux文件下载
背景
在Linux中常用的命令行下载工具:wget、curl
wget
参考地址:https://www.cnblogs.com/jianlilistu/p/10006234.html
选项: -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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
# 下载整个http或者ftp站点 # 下载首页 wget http://place.your.url/here # 使用-x会强制建立服务器上一模一样的目录 wget -x http://place.your.url/here # 下载单个文件 wget http://www.linuxde.net/testfile.zip # 下载并以不同的文件名保存 wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080 # 断点续传 wget -c http://www.linuxde.net/testfile.zip # 限速下载 wget --limit-rate=300k http://www.linuxde.net/testfile.zip # 后台下载 wget -b http://www.linuxde.net/testfile.zip # 测试下载链接 wget --spider URL # 增加重试次数 wget --tries=40 URL # 下载多个文件 wget -i filelist.txt(该文件中保存着多个文件下载地址,以换行符分割) 或者 wget URL1 URL2 URL3 URL4 ... # FTP下载 wget ftp-url wget --ftp-user=USERNAME --ftp-password=PASSWORD url # 使用wget –mirror镜像网站 ## 下面的例子是下载整个网站到本地。 wget –mirror -p –convert-links -P ./LOCAL URL > –miror:开户镜像下载 > -p:下载所有为了html页面显示正常的文件 > –convert-links:下载后,转换成本地的链接 > -P ./LOCAL:保存所有文件和目录到本地指定目录
curl
参考地址:https://www.cnblogs.com/hujiapeng/p/8470099.html
选项: -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 来源网址 -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 进度条显示当前的传送状态1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
# 请求某地址,返回字符串页面 curl https://www.linux.com # 下载文件,并设置下载后保存的文件名 curl -o newname.sh http://www.linux.com/hello.sh # 下载文件,使用源文件的文件名 curl -O http://www.linux.com/hello.sh # 下载多个文件 curl -O 地址1 -O 地址2 -O 地址3 ... # 下载文件【可能重定向】 curl -O -L http://www.linux.com/hello.sh # 访问https下载https文件 curl -k --tlsv1 -O "https://xxx.com/1.png" 参数说明: > -k/--insecure 允许不使用证书到SSL站点 > -1/--tlsv1 使用TLSv1(SSL) > -o/--output 把输出写到该文件中 > -O/--remote-name 把输出写到该文件中,保留远程文件的文件名 > -r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围 # 伪造referer(盗链) curl -e "www.linux.com" http://mail.linux.com # 循环下载 curl -O http://www.linux.com/dodo[1-5].JPG # 分块下载 curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG cat dodo1_part* > dodo1.JPG # 通过ftp下载文件 curl -O -u 用户名:密码 ftp://www.linux.com/dodo1.JPG curl -O ftp://用户名:密码@www.linux.com/dodo1.JPG # 显示下载进度条 curl -# -O http://www.linux.com/dodo1.JPG # 断点续传 curl -C -O http://www.linux.com/dodo1.JPG # 上传文件 curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/
本文由作者按照 CC BY 4.0 进行授权