Linux 基础教程 38-文件下载
什么是wget
wget用原始帮助里面的英文来讲就是:The non-interactive network downloader,非交互式网络下载器。它支持HTTP、HTTPS、FTP等协议,同时也支持基于HTTP代理的下载。其他主要特点如下所示:
- 可以工作于后台,而不需要登录到系统
- 可以跟踪HTML、XHTML、CSS等文件,从而将服务器上的页面下载到本地进行离线浏览。
- 支持慢速和不稳定网络下的下载和连接。
常用语法
wget [选项] [URL]
常用选项参数如下所示:
| 选项 | 说明 |
|---|---|
| -V,--version | 显示版本信息 |
| -h,--help | 显示帮助信息 |
| -b,--backgroup | 以后台形式进行运行 |
| -e command,--execute command | 如果命令属于.wgetrc,则执行命令 |
| -o logfile,--output-file=logfile | 将日志打印到文件中 |
| -a logfile,--append-output=logfile | 追加日志到文件中 |
| -q,--quiet | 静默模式,关闭wget的输出信息 |
| -v,--verbose | 显示详细的信息,wget默认模式 |
| -i file,--inpu-file=file | 从文件中读取URL下载地址 |
| -B URL,--base=URL | 设置连接的相对URL地址 |
| --bind-address=ADDRESS | 设置连接的IP地址或主机名 |
| -t number,--tries=number | 设置重试次数,0和inf则代表一直重试,默认值为20 |
| -O file,--output-document=file | 将下载文件中的内容保存到本地文件中 |
| -nc,--no-clobber | 如果下载文件已经存在,则不下载 |
| -c,--continue | 继续执行上次的下载任务 |
| -N,--timestamping | 增加时间戳 |
| -S,--server-response | 打印HTTP、FTP头部信息 |
| -T seconds,--timeout=seconds | 设置超时时间 |
| --limit-rate=amount | 限制下载速度 |
| -X | 设置下载排除项 |
| -r,--recursive | 递归下载文件 |
| -nH, --no-host-directories | 禁止创建以域名命令的文件夹 |
| --cut-dirs=number | 忽略下载地址中的层次目录 |
配置文件
要想好好使用wget命令,还是先了解一下wget隐藏的一些潜规则,位置在:
- /etc/wgetrc
- 家目录中的.wgetrc
1、wget命令有一些选项可以使用逗号进行隔开,如-X可以设置排除项,如果仅仅是一次,则无所谓,但如果长期均不需要下载这些目录,则可以将这些排除项添加.wgetrc配置文件中
exclude_directories=test,tmp,temp
2、在第一种情况下,突然又想下载这些文件时,可以去掉配置文件中设置,也可以采用以下的方法:
wget -r -X '' ftp://192.168.8.8
常用示例
1、下载文件:
[root@localhost ]# wget https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_redBlue_32fe2c69.png
--2018-07-28 19:55:17-- https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_redBlue_32fe2c69.png
正在解析主机 ss0.bdstatic.com (ss0.bdstatic.com)... 180.163.198.32
正在连接 ss0.bdstatic.com (ss0.bdstatic.com)|180.163.198.32|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:8618 (8.4K) [image/png]
正在保存至: “logo_redBlue_32fe2c69.png”
100%[=============================================================================================================================>] 8,618 --.-K/s 用时 0.002s
2018-07-28 19:55:17 (3.80 MB/s) - 已保存 “logo_redBlue_32fe2c69.png” [8618/8618])
2、下载目录和后台执行
[root@localhost test]# wget -r -b https://mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/
继续在后台运行,pid 为 26252。
将把输出写入至 “wget-log”。
[root@localhost test]# ll
总用量 4
drwxr-xr-x 3 root root 38 7月 28 20:14 mirrors.aliyun.com
-rw-r--r-- 1 root root 1257 7月 28 20:14 wget-log
[root@localhost test]# cat wget-log
--2018-07-28 20:14:11-- https://mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 180.163.155.11, 180.163.155.8, 180.163.155.9, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|180.163.155.11|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:3518 (3.4K) [text/html]
正在保存至: “mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/index.html”
3、禁止生成下载地址中的多级目录
[root@localhost test]# wget -b -r -nH --cut-dir=6 https://mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/
继续在后台运行,pid 为 34849。
将把输出写入至 “wget-log”。
[root@localhost test]# ll
总用量 12
-rw-r--r-- 1 root root 3518 7月 28 20:25 index.html
-rw-r--r-- 1 root root 295 10月 31 2017 robots.txt
-rw-r--r-- 1 root root 1113 7月 28 20:25 wget-log
下载目录路径如下所示:
| 情况 | 结果 |
|---|---|
| -r | mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/ |
| -nH | centos/7.5.1804/atomic/x86_64/adb/ |
| -nH --cut-dir=1 | centos/7.5.1804/atomic/x86_64/adb/ |
| -nH --cut-dir=4 | adb/ |
| -nH --cut-dir=6 | . |
4、将下载的文件保存到本地文件中
[root@localhost test]# wget -t 2 -o log.txt https://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/sha256sum.txt -O test.txt
[root@localhost test]# ll
总用量 8
-rw-r--r-- 1 root root 554 7月 28 20:37 log.txt
-rw-r--r-- 1 root root 598 5月 10 03:59 test.txt
[root@localhost test]# cat log.txt
--2018-07-28 20:37:28-- https://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/sha256sum.txt
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 180.163.155.9, 180.163.155.10, 180.163.155.11, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|180.163.155.9|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:598 [text/plain]
正在保存至: “test.txt”
0K 100% 175M=0s
2018-07-28 20:37:28 (175 MB/s) - 已保存 “test.txt” [598/598])
[root@localhost test]# cat test.txt
506e4e06abf778c3435b4e5745df13e79ebfc86565d7ea1e128067ef6b5a6345 CentOS-7-x86_64-DVD-1804.iso
b346daae2a93caed88e822e722e7284c648f9919d475ff98489b424350f99a45 CentOS-7-x86_64-LiveGNOME-1804.iso
040ddfb27d30e48efad8709c9df946202cec169077c843fd2cbe8d802187ff8e CentOS-7-x86_64-LiveKDE-1804.iso
714acc0aefb32b7d51b515e25546835e55a90da9fb00417fbee2d03a62801efd CentOS-7-x86_64-Minimal-1804.iso
99723c8b87dcec21df8aed23de1eb810346d42cfd2a3fafafe70a68296053417 CentOS-7-x86_64-Everything-1804.iso
937bf0a7b0932817f84f7230f15ed88911bbbd85c0c958680792b7f8d8f9c1a9 CentOS-7-x86_64-NetInstall-1804.iso
本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

Linux 基础教程 38-文件下载的更多相关文章
- 嵌入式LINUX基础教程 第2版
嵌入式LINUX基础教程 第2版 目录 第1章 入门 11.1 为什么选择Linux 11.2 嵌入式Linux现状 21.3 开源和GPL 21.4 标准及相关组织 31.4.1 Linux标准基 ...
- Linux基础教程
Linux基础教程之<Linux就该这么学>之学习笔记第一篇... ========================= 一.Basic Linux Commands 基本的Linux ...
- Embedded Linux Primer----嵌入式Linux基础教程--2.4节--嵌入式Linux发行版
嵌入式Linux发行版 究竟什么是Linux发行版?在Linux内核引导之后,它期望找到并挂载根文件系统.当一个匹配的根文件系统已经挂载上,启动脚本开始运行大量程序和系统要求的工具.这些程序经常调用其 ...
- Embedded Linux Primer----嵌入式Linux基础教程--章节介绍
章节介绍 第一章,“导引”,简要介绍了Linux被迅速应用在嵌入式环境的驱动因素,介绍了与嵌入式Linux相关的几个重要的标准和组织. 第二章,“第一个嵌入式经历”,介绍了与后几章所构建的嵌入式Lin ...
- Embedded Linux Primer----嵌入式Linux基础教程--导论
第一章 导论 在这一章里(将要学习到) 为什么是Linux 嵌入式Linux现状 开源和GPL(译者:通用公共许可证) 标准和有关团体 本章总结 放弃专有操作系统正在许多传统嵌入式操作系统公司引起一阵 ...
- Linux基础教程(一)——Linux系统简介
Linux的概述 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于 ...
- Linux 基础教程 35-软件包管理-YUM
YUM基础 使用RPM在Linux中安装.卸载软件或服务进会经常碰到RPM包的依赖,而我们在安装软件A时,提示依赖于软件B,安装软件B时又会出现提示依赖于软件C等一系列的依赖关系.这时大家会提 ...
- Linux 基础教程 34-软件包管理-RPM
对于Linux而言管理各类软件,如安装.卸载和升级等是常有的事情和必备的技能.以CentOS为例,常用的安装包命令有rpm和yum. RPM基础 RPM(RedHat Package ...
- Linux 基础教程 25-命令和文件查找
which 不管是在Windows还是Linux系统中,我们都会偶尔执行一些系统命令,比如Windows常见的cmd.ping.ipconfig等,它们的位置都在%systemdrive%中. ...
- 《嵌入式Linux基础教程学习笔记一》
常用书目下载地址:http://www.cnblogs.com/pengdonglin137/p/3688029.html 第二章 1.进程上下文和中断上下文(Page20) 当应用程序执行系统调用, ...
随机推荐
- 在linux,arm上的屏幕搜索wifi并连接(qt,多选择,wifi按信号排列)转
先上代码!! #include "widget.h"#include "ui_widget.h"#include <QVBoxLayout>#inc ...
- bzoj 4036 [HAOI2015]按位或——min-max容斥+FMT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4036 题解:https://www.cnblogs.com/Zinn/p/10260126. ...
- Sql Server中的事务隔离级别
数据库中的事物有ACID(原子性,一致性,隔离性,持久性)四个特性.其中隔离性是用来处理并发执行的事务之间的数据访问控制.SqlServer中提供了几种不同级别的隔离类型. 概念 Read UnCom ...
- C# Async&Await
在async和await之前我们用Task来实现异步任务是这样做的: static Task<string> GetBaiduHtmlTAP() { //创建一个异步Task对象,内部封装 ...
- 【转】MySQL存储过程中使用动态行转列
MySQL存储过程中使用动态行转列 最近做项目关于数据报表处理,然而数据库存储格式和报表展现形式不同,需要进行一下行转列的操作,在做上一个项目的时候也看了一下,但是后来换了读取方式,也就没深入研究这个 ...
- 【转】java内存分配和String类型的深度解析
一.引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析关于String的许多令人迷惑的问题.下面是本 ...
- bzoj1811 mea
Description 考虑一个非递减的整数序列 S1,....Sn+1(Si<=Si+1 1<=i<=n). 序列M1...Mn是定义在序列S的基础上,关系式为 Mi=( Si ...
- 学习笔记之LeetCode
LeetCode Online Judge https://leetcode.com/ Leetcode:在线编程网站-各大IT公司的笔试面试题 http://blog.csdn.net/huixin ...
- sql在外键存在的情况下删除表
SQL Server 批量 停用/启用 外键约束 今天百度知道上面,看到这样一个要求: 现在有一个库,有很多张表想要删除一张表的记录的时候,由于外键关联太多,所以,没法删除相应的记录,谁能帮忙写个存储 ...
- node express+mysql搭建简易API服务—body-parser中间件
最近用express搭建了一个简单的RESTful风格的API服务,数据库使用mysql,主要用于获取数据库数据,模糊搜索等. 需要用到的模块: express:这个都很熟悉了: body-parse ...