wget 命令

103 阅读2分钟

wget 是一个强大的非交互式网络下载工具,主要用于从互联网上下载文件。它支持多种协议,包括 HTTP、HTTPS、FTP,并且可以使用 HTTP 代理。wget 特别适合在带宽有限或网络连接不稳定的情况下使用,因为它具有断点续传的功能,可以在中断后继续下载未完成的部分。

基本语法

wget [选项]... [URL]...

主要选项

  • -b, --background: 在后台运行。
  • -c, --continue: 继续未完成的下载。
  • -p, --page-requisites: 下载页面依赖的其他文件,如图片和样式表。
  • -k, --convert-links: 将远程链接转换为本地链接。
  • -P, --directory-prefix=DIR: 将下载的文件保存在 DIR 目录中。
  • -O, --output-document=FILE: 将输出保存到 FILE 文件中。
  • -U, --user-agent=AGENT: 设置用户代理字符串。
  • -o, --output-file=FILE: 将日志信息保存到 FILE 文件中。
  • -q, --quiet: 静默模式,减少输出信息。
  • -r, --recursive: 递归下载,创建远程目录的本地镜像。
  • -l, --level=N: 递归下载时的最大深度。
  • -m, --mirror: 创建一个完整的远程目录镜像。
  • -e, --restrict-file-names=MODE: 更改文件名编码方式。
  • -t, --tries=N: 尝试下载的最大次数。
  • -w, --wait=SECONDS: 下载文件之间等待 SECONDS 秒。
  • -T, --timeout=SECONDS: 连接超时时间。
  • -nv, --no-check-certificate: 忽略 SSL 证书验证。
  • -e, --referer=URL: 设置引用 URL。
  • -e, --header=HEADER: 添加额外的 HTTP 请求头。
  • -u, --http-user=USER: HTTP 用户名。
  • -p, --http-password=PASS: HTTP 密码。

使用示例

  • 下载单个文件:

    wget http://example.com/file.zip
    
  • 继续下载已部分完成的文件:

    wget -c http://example.com/largefile.iso
    
  • 下载整个网站(递归下载):

    wget -r -p -k http://example.com/
    
  • 限制递归深度:

    wget -r -l 2 http://example.com/
    
  • 将所有链接转换为相对于本地目录:

    wget -r -k -p http://example.com/
    
  • 下载文件并保存到特定目录:

    wget -P /path/to/download http://example.com/file.pdf
    
  • 将输出保存到文件中:

    wget -O output.txt http://example.com/file.txt
    
  • 使用代理服务器下载:

    export http_proxy=http://username:password@proxy.example.com:port
    wget http://example.com/
    

注意事项

  • 使用 wget 下载大量文件或整个网站时,应先了解目标服务器的 robots.txt 文件,尊重其规定。
  • 在公共或受限网络环境下使用代理时,确保正确设置了代理参数。
  • 使用 wget 的递归下载功能时,小心不要无限递归,特别是当网站包含循环链接时。
  • 在自动化脚本中使用 wget 时,注意处理网络波动和文件完整性验证。

wget 是 Linux 和 Unix 系统中的常用工具,也存在 Windows 版本,适用于各种网络管理、自动化下载和镜像构建任务。