wget 详解
- wget 详解
- 基本用法:
- 命令参数:
- 递归下载:
- 断点续传:
- 限速下载:
- 后台下载:
- 示例
wget 详解
wget(Web Get)是一个用于从网络上下载文件的命令行工具,常用于在 Linux 和类Unix系统中。它支持HTTP、HTTPS和FTP等协议,能够递归下载、断点续传、限速下载等功能,使其成为一个强大而灵活的下载工具。下面是一些 wget 的常见用法和功能:
基本用法:
命令格式:
wget [options] [URL]
- 下载文件:
wget URL,将从给定的URL下载文件。 - 下载到指定目录:
wget URL -P /path/to/directory,将文件下载到指定目录。
命令参数:
以下是 wget 常用的参数分类:
启动参数:
-V,--version: 显示wget版本信息。-h,--help: 显示帮助信息。-b,–background, 启动后转入后台执行。-e,–execute=COMMAND, 执行`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc。
记录和输入文件参数:
-
-o,--output-file=FILE: 将日志信息写入指定文件。 -
-a,--append-output=FILE: 将日志信息追加到指定文件。 -
-d,–debug, 打印调试输出。 -
-q,–quiet, 安静模式(没有输出) -
-v,–verbose, 冗长模式(这是缺省设置) -
-nv,–non-verbose关掉冗长模式,但不是安静模式。 -
-i,–input-file=FILE下载在FILE文件中出现的URLs -
-F,–force-html把输入文件当作HTML格式文件对待 -
-B,–base=URL将URL作为在-F -i参数指定的文件中出现的相对链接的前缀sslcertfile=FILE可选客户端证书–sslcertkey=KEYFILE可选客户端证书的KEYFILE–egd-file=FILE指定EGD socket的文件名
下载参数:
-N,--timestamping: 如果本地文件存在且时间戳较新,则不重新下载文件。-nc,--no-clobber: 不覆盖已存在的文件。-c,--continue: 断点续传,从上次下载停止的地方继续下载。-P,--directory-prefix=PREFIX: 指定文件保存的目录前缀。-O,--output-document=FILE: 将下载的文件保存为指定的文件名。--limit-rate=RATE: 限制下载速率,例如--limit-rate=100k表示限制下载速率为100KB/s。
目录参数:
-nd,--no-directories: 不创建目录,将所有文件保存在当前目录。-x,--force-directories: 强制创建目录,保持远程服务器的目录结构。-nH,--no-host-directories: 不创建主机名目录。
HTTP 选项参数:
--http-user=USER: 指定 HTTP 用户名。--http-passwd=PASS: 指定 HTTP 密码。--header=STRING: 在 HTTP 请求头中添加自定义字符串。--referer=URL: 在 HTTP 请求中包含 Referer 头。
FTP 选项参数:
--ftp-user=USER: 指定 FTP 用户名。--ftp-passwd=PASS: 指定 FTP 密码。--passive-ftp: 使用被动 FTP 模式。--active-ftp: 使用主动 FTP 模式。
递归下载参数:
-r,--recursive: 递归下载,下载指定 URL 及其链接中的所有文件。-l,--level=NUMBER: 限定递归深度。-k,--convert-links: 转换非相对链接为相对链接,便于本地浏览。
递归下载中的包含和不包含(accept/reject):
-A,--accept=LIST: 仅下载匹配列表中扩展名的文件。-R,--reject=LIST: 排除下载匹配列表中扩展名的文件。
其他参数:
-t,--tries=NUMBER: 设定最大尝试链接次数。-T,--timeout=SECONDS: 设定响应超时的秒数。-w,--wait=SECONDS: 两次尝试之间的等待时间。--waitretry=SECONDS: 在重新链接之间等待的时间。--random-wait: 在下载之间随机等待一段时间。
以上仅是一些常见的 wget 命令参数和选项的解释。根据需要,可以选择适当的参数来定制 wget 的下载行为。可以使用 man wget 命令在终端中查看完整的 wget 手册页,以获取更详细的信息。
递归下载:
wget 支持递归下载整个网站或目录。
- 递归下载整个网站:
wget --recursive URL,会下载网站中所有链接的文件。 - 递归下载并限制深度:
wget --recursive --level=depth URL,下载链接并限制下载深度。 - 排除某些文件类型:
wget --recursive --reject=txt URL,排除指定文件类型。
断点续传:
wget 可以在下载中断后继续下载,而无需重新下载整个文件。
- 断点续传:
wget --continue URL,会继续上次未完成的下载。
限速下载:
你可以限制下载速度,以防止过多占用带宽。
- 限制下载速度:
wget --limit-rate=100k URL,限制下载速度为100KB/s。
后台下载:
如果你想让下载在后台进行,可以使用 nohup 命令。
- 后台下载:
nohup wget URL &,将下载在后台进行,不会受到终端关闭的影响。
这些只是 wget 命令的一些用法示例。wget 还有许多其他选项和功能,你可以使用 man wget 命令在终端中查看完整的手册页面,了解更多详细信息。
示例
实例1:使用 wget 下载单个文件:
wget http://example.com/file.txt
实例2:使用 wget -O 下载并以不同的文件名保存:
wget -O output.txt http://example.com/file.txt
实例3:使用 wget --limit-rate 限速下载:
wget --limit-rate=100k http://example.com/large-file.zip
实例4:使用 wget -c 断点续传:
wget -c http://example.com/large-file.zip
实例5:使用 wget -b 后台下载:
wget -b http://example.com/large-file.zip
实例6:伪装代理名称下载:
wget --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" http://example.com/file.txt
实例7:使用 wget --spider 测试下载链接:
wget --spider http://example.com/file.txt
实例8:使用 wget --tries 增加重试次数:
wget --tries=3 http://example.com/unstable-file.zip
实例9:使用 wget -i 下载多个文件:
wget -i urls.txt
其中,urls.txt 包含要下载的多个URL。
实例10:使用 wget --mirror 镜像网站:
wget --mirror http://example.com/
实例11:使用 wget --reject 过滤指定格式下载:
wget --reject=jpg,png http://example.com/images/
实例12:使用 wget -o 将下载信息存入日志文件:
wget -o download.log http://example.com/large-file.zip
实例13:使用 wget -Q 限制总下载文件大小:
wget -Q100m http://example.com/large-file.zip
实例14:使用 wget -r -A 下载指定格式文件:
wget -r -A pdf http://example.com/documents/
实例15:使用 wget 进行 FTP 下载:
wget ftp://example.com/file.txt
实例16:下载文件并保留远程文件名:
wget --content-disposition http://example.com/download/file.zip
实例17:下载文件并跳过 SSL 验证:
wget --no-check-certificate https://example.com/secure-file.zip
实例18:下载并使用代理服务器:
wget --proxy=http://proxy.example.com:8080 http://example.com/file.txt
实例19:限制递归下载深度:
wget --recursive --level=2 http://example.com/
实例20:排除下载指定链接:
wget --recursive --reject=gif,png,jpg http://example.com/images/
实例21:同时下载多个文件并使用通配符:
wget http://example.com/file[1-5].txt
实例22:从链接文件下载多个文件:
如果有一个 urls.txt 文件,包含多个下载链接,可以使用以下命令:
wget -i urls.txt
实例23:从用户名和密码保护的目录下载文件:
wget --http-user=username --http-password=password http://example.com/protected/file.txt
实例24:使用 wget 下载并解压文件:
wget http://example.com/archive.tar.gz && tar -zxvf archive.tar.gz
实例25:使用 wget 下载并解压压缩包到指定目录:
wget http://example.com/archive.tar.gz -O - | tar -zxvf - -C /path/to/directory
实例26:使用 wget 下载文件并指定本地绑定地址:
wget --bind-address=192.168.1.2 http://example.com/file.txt
实例27:使用 wget 设定最大尝试链接次数:
wget -t 5 http://example.com/file.txt
实例28:使用 wget 将文件写入指定文件:
wget -O output.txt http://example.com/file.txt
实例29:使用 wget 不覆盖已存在文件:
wget -nc http://example.com/file.txt
实例30:使用 wget 接着下载未完成的文件:
wget -c http://example.com/large-file.zip
实例31:使用 wget 显示下载进度条:
wget --progress=bar http://example.com/file.txt
实例32:使用 wget 设定响应超时时间:
wget -T 30 http://example.com/file.txt
实例33:使用 wget 两次尝试之间间隔等待时间:
wget -w 5 http://example.com/file.txt
实例34:使用 wget 在重新链接之间等待指定时间:
wget --waitretry=10 http://example.com/file.txt
实例35:使用 wget 在下载之间随机等待一段时间:
wget --random-wait http://example.com/file.txt
实例36:使用 wget 打开代理:
wget --proxy=on http://example.com/file.txt
实例37:使用 wget 设定下载容量限制:
wget -Q 100M http://example.com/large-file.zip