人工智能与机器人技术论坛
标题:
Wget 网络文件下载工具命令
[打印本页]
作者:
adminbbs
时间:
前天 09:51
标题:
Wget 网络文件下载工具命令
wget 是一个在 Linux、Unix、macOS(需安装)以及 Windows(需安装或使用 WSL)上广泛使用的命令行工具,主要用于从网络上非交互式地下载文件。
它的名字来源于 World Wide Web 和 Get。由于其稳定、支持断点续传、能递归下载整个网站等特性,它是服务器管理和脚本自动化中不可或缺的工具。
以下是 wget 的核心功能、常用命令及场景解析:
. 核心特点
非交互式:可以在后台运行,即使用户断开连接(如关闭终端),下载任务通常也能继续(配合 nohup 或 screen)。
支持多种协议:支持 HTTP, HTTPS, FTP。
断点续传:如果下载中断,可以使用 -c 参数从中断处继续下载,无需重新开始。
递归下载:可以镜像整个网站,下载页面中的所有链接资源。
自动转换链接:下载网页后,可以自动修改其中的链接指向本地文件,方便离线浏览。
. 常用命令速查
基础下载
bash
编辑
# 下载单个文件
wget
https://example.com/file.zip
# 下载并指定文件名 (-O 代表 Output)
wget -O myname.zip
https://example.com/file.zip
进阶功能(最常用)
bash
编辑
# 断点续传 (Continue)
# 如果下载了一半断了,再次运行此命令会接着下载
wget -c
https://example.com/large_file.iso
# 后台下载 (Background)
# 下载进程会在后台运行,生成一个 wget-log 文件
wget -b
https://example.com/big_file.tar.gz
# 限制下载速度 (Limit Rate)
# 避免占满带宽,例如限制为 500k
wget --limit-rate=500k
https://example.com/video.mp4
批量与递归下载
bash
编辑
# 从文件中读取 URL 列表进行下载 (-i input)
# urls.txt 文件中每行一个网址
wget -i urls.txt
# 递归下载整个网站 (Recursive)
# 下载首页及其链接的所有页面,适合做网站镜像
wget -r
https://example.com/
# 递归下载特定类型的文件 (例如只下载所有 .jpg 图片)
wget -r -l inf --no-parent -A .jpg
https://example.com/images/
# -l inf: 无限层级
# --no-parent: 不追溯父目录
# -A .jpg: 只接受 jpg 后缀
模拟浏览器 (绕过某些限制)
有些服务器会拒绝没有 User-Agent 的请求(防止脚本抓取),可以伪装成浏览器:
bash
编辑
wget --user-agent="Mozilla/5.0"
https://example.com/protected_file.zip
. 常见应用场景
表格
场景 命令示例 说明
下载大文件 wget -c [URL] 必须加 -c,防止网络波动导致前功尽弃。
服务器备份 wget -r -k [URL] -k 会将下载后的网页链接转换为本地相对路径,方便离线查看。
批量下载 wget -i list.txt 适合需要下载成百上千个文件的场景。
测试网速 wget -O /dev/null [URL] 将下载内容丢弃,仅用于测试连接到某服务器的下载速度。
. wget vs curl
这是两个最容易混淆的工具,简单区别如下:
wget: 擅长下载文件。支持递归下载网站,默认直接保存文件到磁盘。语法相对简单直观。
curl: 擅长数据传输和API 调试。支持更多协议(SMTP, IMAP, MQTT 等),默认将内容输出到屏幕(标准输出),需要加 -O 才保存文件。更适合开发者在脚本中处理 HTTP 请求头、Cookie 等复杂交互。
口诀:下载文件用 wget,调试接口用 curl。
. 如何安装
Ubuntu/Debian: sudo apt install wget (通常预装)
CentOS/RHEL: sudo yum install wget
macOS: brew install wget (需先安装 Homebrew)
Windows:
推荐安装 WSL (Windows Subsystem for Linux) 直接使用。
或者下载第三方编译版(如 GnuWin32),并将其添加到系统环境变量 PATH 中。
如果你需要针对某个具体任务的 wget 命令(比如“如何下载整个百度网盘的分享链接”或“如何下载需要登录的网站”),请告诉我具体场景,我可以提供更精准的命令。
欢迎光临 人工智能与机器人技术论坛 (http://www.airobotbbs.com/)
Powered by Discuz! X3.3