Linux 命令之 wget -- 下载文件工具

文章目录

  • 一、命令介绍
  • 二、命令语法
  • 三、常用选项
  • 四、命令示例
    • (一)下载并以不同的文件名保存
    • (二)下载单个文件
    • (三)限速下载
    • (四)断点续传
    • (五)使用 wget 后台下载
    • (六)伪装代理名称下载
    • (七)测试下载链接
    • (八)增加重试连接的次数
    • (九)下载多个文件
    • (十)镜像网站,即下载整个网站
    • (十一)过滤指定格式下载
    • (十二)把下载信息存入日志文件
    • (十三)限制下载文件的总大小
    • (十四)下载指定格式的文件
    • (十五)匿名 FTP 下载
    • (十六)用户名和密码认证的 FTP 下载
    • (十七)用户名和密码认证的 HTTP 下载

一、命令介绍

wget 是在Linux下开发的开放源代码的软件,作者是 Hrvoje Niksic,后来被移植到包括 Windows 在内的各个平台上。

wget 命令用来从指定的 URL 下载文件。wget 非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget 会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

wget 支持 HTTP,HTTPS 和 FTP 协议,可以使用 HTTP 代理。所谓的自动下载是指,wget 可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个 wget 下载任务,然后退出系统,wget 将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

没有指定目录,资源会默认下载到当前目录下。

wget 主要特点:

  1. 支持断点下传功能
    这一点,也是网络蚂蚁和 FlashGet 当年最大的卖点,现在,wget 也可以使用此功能,那些网络不是太好的用户可以放心了

  2. 同时支持 FTP 和 HTTP 下载方式
    尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件

  3. 支持代理服务器
    对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以,支持代理是下载软件必须有的功能

二、命令语法

wget [参数选项] <URL地址>

三、常用选项

选项描述
-a--append-output<filename>
-o--output-file<filename>把记录写到FILE文件中。例如,在指定的日志文件中记录命令的执行过程信息
-A<后缀名>指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔。就是指定要下载的文件格式,例如,只下载图片、视频等。
-b--backgroundwget 启动后转入后台执行
-B<URL>--base<URL>将 URL 作为在 -F-i 参数指定的文件中出现的相对链接的前缀
-c--continue接着下载没下载完的文件
-C<标志>设置服务器数据块功能标志,on 为激活,off 为关闭,默认值为 on
-d 或 --debug调试模式运行指令,会输出调试信息
-D<域名列表>设置顺着的域名列表,域名之间用“,”分隔
-e<指令>--execute<command>作为文件 .wgetrc 中的一部分执行指定的指令。即执行 .wgetrc 格式的命令,wgetrc 格式参见文件 /etc/wgetrc~/.wgetrc
-F--force-html把输入文件当作HTML格式文件对待
-h--help显示指令帮助信息
-i<filename>--input-file<filename>从指定文件获取要下载的 URL 地址
-l<目录列表>设置顺着的目录列表,多个目录用“,”分隔
-nc--no-clobber不要覆盖存在的文件或使用 .# 前缀
-nv--non-verbose关掉冗长模式,但不是安静模式。下载时只显示更新和出错信息,但不显示指令的详细执行过程
-q--quiet安静模式,不输出命令相关的执行信息,即不显示指令执行过程
-nh不查询主机名称
-v--verbose冗长模式,即显示命令的详细执行过程,这是缺省的选项
-V--version显示 wget 的版本信息后退出
--sslcertfile可选客户端证书
--sslcertkey可选客户端证书的KEYFILE
--egd-file指定 EGD socket 的文件名
--bind-address指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-t<number>--tries<number>设定最大尝试链接次数(0 表示无限制)
-O--output-document<filename>把文档写到 filename 文件中
--progress<type>设定进程条标记
-N--timestamping不要重新下载文件除非比本地文件新
-S--server-response打印服务器的回应
--spider不下载任何东西
-T<seconds>--timeout<seconds>设定响应超时的秒数
-w<seconds>--wait<seconds>两次尝试之间间隔的秒数
--waitretry<seconds>在重新链接之间等待的秒数
--random-wait<seconds>在下载之间等待的秒数
-Y--proxy<on/off>打开或关闭代理
-Q<number>--quota<number>设置下载的容量限制
--limit-rate<rate>限定下载输率
-nd--no-directories不创建目录。递归下载时不创建一层一层的目录,把所有的文件下载到当前目录;不指定该选项默认按照资源在站点位置创建相应目录
-x--force-directories强制创建目录
-nH--no-host-directories不创建主机目录
-P<PREFIX>--directory-prefix<PREFIX>将文件保存到目录 PREFIX/…
--cut-dirs<NUMBER>忽略 NUMBER 层远程目录
--http-user<USER>设定 HTTP 用户名为 USER
--http-passwd<PASS>设定 HTTP 密码为 PASS
-C--cache<on/off>允许/不允许服务器端的数据缓存 (一般情况下允许)
-E--html-extension将所有 text/html 文档以 .html 扩展名保存
--ignore-length忽略 Content-Length 头域
--header<STRING>在 headers 中插入字符串 STRING
--proxy-user<USER>设定代理的用户名为 USER
--proxy-passwd<PASS>设定代理的密码为 PASS
--referer<URL>在 HTTP 请求中包含 Referer: URL
-s--save-headers保存 HTTP 头到文件
-U--user-agent<AGENT>设定代理的名称为 AGENT 而不是 Wget/VERSION
--no-http-keep-alive关闭 HTTP 活动链接 (永远链接)
--cookies<off>不使用 cookies
--load-cookies<FILE>在开始会话前从文件 FILE 中加载 cookie
--save-cookies<FILE>在会话结束后将 cookies 保存到 FILE 文件中
-nr--dont-remove-listing不移走 .listing 文件
-g--glob<on/off>打开或关闭文件名的 globbing 机制
--passive-ftp使用被动模式PASV连接FTP服务器,使用被动传输模式 (缺省值)
--active-ftp使用主动传输模式
--retr-symlinks在递归的时候,将链接指向文件(而不是目录)
-r--recursive递归下载(慎用!)
-l--level<NUMBER>最大递归深度 (inf0 代表无穷)
--delete-after在现在完毕后局部删除文件
-k--convert-links转换非相对链接为相对链接
-K--backup-converted在转换文件X之前,将之备份为 X.orig
-m--mirror等价于 -r -N -l inf -nr,递归下载,递归深度无穷,但是不重新下载文件,除非比本地文件更新,不移走 .listing 文件
-p--page-requisites下载所有用于显示 HTML 页面的图片之类的元素
-A<LIST>--accept<LIST>分号分隔的被接受扩展名的列表
-R<LIST>--reject<LIST>分号分隔的不被接受的扩展名的列表,排除要下载文件的后缀名,多个后缀名之间使用逗号进行分隔
-D--domains<LIST>分号分隔的被接受域的列表
--exclude-domains<LIST>分号分隔的不被接受的域的列表
--follow-ftp跟踪HTML文档中的FTP链接
--follow-tags<LIST>分号分隔的被跟踪的HTML标签的列表
-G--ignore-tags<LIST>分号分隔的被忽略的HTML标签的列表
-H--span-hosts当递归时转到外部主机
-L--relative仅仅跟踪相对链接。递归时不进入其它主机。不指定该选项的话,如果站点包含了外部站点的链接,这样可能会导致下载内容无限大
-I--include-directories<LIST>允许目录的列表
-X--exclude-directories<LIST>不被包含目录的列表
-np--no-parent不要追溯到父目录。递归下载时不搜索上层目录,只在指定的路径下进行下载。不指定该选项默认搜索整个站点
wget -S --spider url不下载只显示过程

四、命令示例

(一)下载并以不同的文件名保存

wget -O wordpress.zip http://www.jsdig.com/download.aspx?id=1080

说明:

  1. -O 表示把文档写到文件 wordpress.zip 中,就是下载的内容存入文件 wordpress.zip 中
  2. 没有指定下载到的目录,默认保存在当前目录
  3. 在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)

(二)下载单个文件

wget http://www.jsdig.com/testfile.zip

(三)限速下载

wget --limit-rate=300k http://www.jsdig.com/testfile.zip

当你执行 wget 的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

(四)断点续传

wget -c http://www.jsdig.com/testfile.zip

需要继续中断的下载时可以使用 -c 参数。对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。

(五)使用 wget 后台下载

wget -b http://www.jsdig.com/testfile.zipContinuing in background, pid 1840.
Output will be written to `wget-log'.

对于下载非常大的文件的时候,我们可以使用参数 -b 进行后台下载,你可以使用以下命令来察看下载进度:

tail -f wget-log

(六)伪装代理名称下载

wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.jsdig.com/testfile.zip

有些网站会判断代理名称不是浏览器而拒绝你的下载请求。不过你可以通过 --user-agent 参数伪装。

(七)测试下载链接

当你打算进行定时下载,你应该在预定时间测试下载链接是否有效。我们可以使用选项 --spider 进行检查。

wget --spider URL

如果下载链接正确将会显示如下信息:

Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.

这保证了下载能在预定的时间进行,如果你给错了一个链接,将会显示如下错误:

wget --spider url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!

你可以在以下几种情况下使用 --spider 参数:

  1. 定时下载之前进行检查
  2. 间隔检测网站是否可用
  3. 检查网站页面的死链接

(八)增加重试连接的次数

wget --tries=40 URL

下载大文件或者网络不稳定时,经常会下载失败,而 wget 默认重试20次连接下载文件。如果需要,你可以使用 --tries 增加重试次数。

(九)下载多个文件

首先,你要将多个下载链接保存到一个文件中,然后使用选项 -i 指定该文件。

wget -i filelist.txt

(十)镜像网站,即下载整个网站

wget --mirror -p --convert-links -P ./LOCAL URL

说明:

  1. --mirror 开户镜像下载
  2. -p 下载所有为了 html 页面显示正常的文件
  3. --convert-links 下载后,转换成本地的链接
  4. -P 将所有文件和目录保存到指定的本地目录下

(十一)过滤指定格式下载

下载一个网站,但你不希望下载图片,可以使用这条命令:

wget --reject=gif url

(十二)把下载信息存入日志文件

不希望下载信息直接显示在终端而是在一个日志文件,可以使用这个命令:

wget -o download.log URL

(十三)限制下载文件的总大小

下载配额选项 -Q,用来指定下载数据配额,下载数据超过了指定配额会停止下载。

例如,当下载的文件的总大小超过 10M 则停止下载:

wget -Q 10m -i filelist.txt

如果不指定下载配额会下载文件 filelist.txt 所包含的所有 url,如果指定了下载配额为 10m,下载数据超过了 10m 会停止后面 url 的下载,但是,一个文件正在下载过程中下载数据超过了下载配额会继续完成该文件的下载不会立即停止下载。

注意,该选项对于单个文件下载无效,只适用于多文件下载或递归下载

(十四)下载指定格式的文件

只下载 pdf,png 格式的文件:

wget -r -A pdf,png url

通常在以下场景中,会使用该命令:

  1. 下载一个网站的所有图片。
  2. 下载一个网站的所有视频。
  3. 下载一个网站的所有PDF文件。

(十五)匿名 FTP 下载

wget ftp-url

(十六)用户名和密码认证的 FTP 下载

wget --ftp-user=USERNAME --ftp-password=PASSWORD url

(十七)用户名和密码认证的 HTTP 下载

wget --http-user=USER --http-password=PASS http://www.example.com/testfile.zip

对于需要证书做认证的网站,就只能利用其他下载工具了,例如 curl。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建react应用程序_使用SpringWebFlux的React式Web应用程序

创建react应用程序1.React式编程简介 React式编程是为具有以下特征的应用程序创造的术语&#xff1a; 非阻塞应用 事件驱动和异步 需要少量线程来垂直扩展&#xff08;即在JVM中&#xff09; 就像面向对象的编程&#xff0c;函数式编程或过程式编程一样&#xff0c;React式…

获取当地天气_Mac 天气预报动态壁纸工具Living Weather HD 4.4.4

这款独特的非凡应用程序将天气呈现在您的桌面上&#xff0c;它能够预报天气状况&#xff0c;并在桌面上使用相应的美丽动态壁纸场景。 天气HD也可以用作屏保。 主要功能&#xff1a; ● 在桌面上了解世界各地当前的天气状况和未来状况 ● 与当前天气状况、今天或明天预报相应的…

Linux 命令之 curl 的选项(英文版)

Usage: curl [options...] <url> Options: (H) means HTTP/HTTPS only, (F) means FTP only--anyauth Pick "any" authentication method (H) 可以使用“任何”身份验证方法-a, --append Append to target file when uploading (F/SFTP) 上传文件…

获取文件夹下的文件名并存入txt中

import os path_imgsC:/Users/13451/Desktop/pic #图片存放的地址 for files in os.listdir(path_imgs): #listdir函数获取文件夹下图片的名字,返回包含所有文件名字的列表with open(C:/Users/13451/Desktop/train_data.txt,a) as f: f.write(files.rstrip(.png)) #只保存名…

javaparser_JavaParser生成,分析和修改Java代码

javaparser作为开发人员&#xff0c;我们经常鄙视手动进行重复工作的人员。 我们认为&#xff0c; 他们应该实现这一目标 。 尽管如此&#xff0c;我们还是进行与编码有关的所有活动。 当然&#xff0c;我们使用的高级IDE可以为我们执行一些重构&#xff0c;但这基本上就结束…

计算机系统组成_网络教育统考计算机应用基础题库(计算机系统的组成2)

点击蓝字关注我哦11在微型计算机的各种设备中&#xff0c;既用于输入又可用于输出的设备是____。A、磁盘驱动器B、键盘C、鼠标D、绘图仪点击空白处查看答案参考答案:A12计算机的硬件系统由五大部分组成&#xff0c;下列各项中不属于这五大部分的是______。A、运算器B、软件C、I…

深度学习基础实战使用MNIST数据集对图片分类

本文代码完全借鉴pytorch中文手册 我们找到数据集&#xff0c;对数据做预处理&#xff0c;定义我们的模型&#xff0c;调整超参数&#xff0c;测试训练&#xff0c;再通过训练结果对超参数进行调整或者对模型进行调整。 import torch import torch.nn as nn import torch.nn.f…

Linux 命令之 curl -- 文件传输工具/下载工具/网络接口调试

文章目录 一、命令介绍二、常用选项三、wget 与 curl 对比四、命令示例(一)以 post 方式提交数据/以 post 方式传递请求参数(二)查看网页的源码内容(三)保存访问的网页源码内容(四)将服务器的回应保存成文件/将输出保存成文件(五)显示 http response 头信息,打印出服…

python cookie使用_Python使用cookielib模块操作cookie的实例教程

cookielib是一个自动处理cookies的模块&#xff0c;如果我们在使用爬虫等技术的时候需要保存cookie&#xff0c;那么cookielib会让你事半功倍&#xff01;他最常见的搭档模块就是python下的urllib和request。核心类1.Cookie该类实现了Netscape and RFC 2965 cookies定义的cooki…

pytorch中unsqueeze()函数理解

unsqueeze()函数起升维的作用,参数表示在哪个地方加一个维度。 在第一个维度(中括号)的每个元素加中括号 0表示在张量最外层加一个中括号变成第一维。 直接看例子: import torch inputtorch.arange(0,6) print(input) print(input.shape) 结果&#xff1a; tensor([0, 1, 2, 3…

Linux 命令之 ifconfig -- 配置和显示网卡的网络参数

文章目录一、命令介绍二、常用选项三、参考示例&#xff08;一&#xff09;显示网络设备信息&#xff08;激活状态的&#xff09;&#xff08;二&#xff09;启动关闭指定网卡&#xff08;三&#xff09;显示所有配置的网络接口&#xff0c;不论其是否激活&#xff08;四&#…

版本交付_连续交付友好的Maven版本

版本交付持续交付管道需要可预测的软件和依赖版本。 Maven软件项目中常见的快照版本与“持续交付”背后的动机背道而驰。 为了将快照版本更新为发行版本&#xff0c;开发人员通常手动或通过诸如maven-release-plugin来编辑pom.xml文件。 但是&#xff0c;Maven还提供了将版本号…

shell开启飞行模式_今天才知道,原来手机的飞行模式用处那么多,看完涨知识了...

想必大家都知道&#xff0c;手机里有个飞行模式&#xff0c;是在乘坐飞机时使用的。其实除了这个功能之外&#xff0c;飞行模式还有很多其他的妙用&#xff0c;下面笔者就为大家一一进行介绍。一、 加快充电速度有些特殊情况你想加快手机的充电速度时&#xff0c;可以试着开启飞…

Anaconda安装库

有时候pip安装库特别慢&#xff0c;就采用conda别的方法装 conda install -c conda-forge 库名#如pydicom,gdcm

Linux 如何安装 SRPM 包(源代码 rpm 软件包,以 .src.rpm 为后缀名)/rpm 格式的源码软件包/源码包

文章目录一、SRPM 介绍二、SRPM 命名格式三、SRPM 的安装&#xff08;一&#xff09;直接使用命令 rpmbuild&#xff08;二&#xff09;利用 *.spec 文件编译&#xff08;三&#xff09;使用命令 make 编译和安装四、写在最后一、SRPM 介绍 SRPM 包&#xff0c;比 RPM 包多了一…

payara 创建 集群_在Payara Server和GlassFish中配置密码

payara 创建 集群回答Stackoverflow问题可以为我发现我最喜欢的开源工具的正式文档中的空白提供很好的反馈。 我在这里回答的问题之一是如何在docker容器中更改Payara Server主密码 。 显然&#xff0c;在标准服务器安装中&#xff0c;这很简单–只需使用asadmin change-master…

axure怎么做5秒倒计时_五个月宝宝早教,5个月婴儿早教怎么做

五个月宝宝早教&#xff0c;5个月婴儿早教怎么做&#xff0c;5个月宝宝是需要开始有意识的进行精细动作的家庭训练了5个月宝宝的一般特点&#xff1a;到了5个月时&#xff0c;能用眼睛观察周围的物体了&#xff0c;而且对什么都感到新奇好玩&#xff0c;能在眼睛的支配下抓住东…

python中enumerate()的理解

enumerate()函数的作用是通过迭代来遍历一个字符串、列表或字典等&#xff0c;并且为其增加索引&#xff0c;返回值为enumerate类。 代码举例如下&#xff1a; list[1,2,3,4,5,6] for i,j in enumerate(list):print(i,j) #结果&#xff1a; 0 1 1 2 2 3 3 4 4 5 5 6namesaber…

jpa执行sql脚本_JPA persistence.xml SQL脚本定义

jpa执行sql脚本您可以在将在运行时执行的JPA持久性上下文定义中定义并链接到SQL脚本。 有标准化的属性来定义脚本&#xff0c;以分别说明如何创建模式&#xff0c;批量加载数据和删除模式&#xff1a; <persistence version"2.1" xmlns"http://xmlns.jcp.or…

RPM 软件包默认的安装路径

通常情况下&#xff0c;RPM 包采用系统默认的安装路径&#xff0c;所有安装文件会按照类别分散安装到表 1 所示的目录中。 表 1 RPM 包默认安装路径安装路径含义/etc/配置文件安装目录/usr/bin/可执行的命令文件安装目录/usr/lib/程序所使用的函数库保存位置/usr/share/doc/基本…