文章目录
- Linux 中的 `wget` 命令详解
- `wget` 的基本语法
- 常用的 `wget` 选项
- 下载文件
- 保存文件到指定位置
- 断点续传
- 递归下载
- 下载速度限制
- 下载整个网站镜像
- 后台下载
- 设置用户代理
- 下载指定时间范围内的文件
- 实战应用
- 排除特定文件类型
- 批量下载
- 忽略证书验证
- 通过代理下载
- 使用 `xargs` 进行并行下载
- 批量下载图像
- 自动重试
- 总结
Linux 中的 wget
命令详解
wget
是 Linux 中常用的命令行工具,用于从 Web 下载文件。它支持 HTTP、HTTPS、FTP 等协议,能在网络断开后继续下载,并且支持递归下载网站的功能,是网络文件下载的利器。
wget
的基本语法
wget [选项] [URL]
选项
:自定义下载行为的参数。URL
:要下载文件的网络地址。
常用的 wget
选项
下载文件
最简单的用法就是直接输入 wget
后跟要下载的文件 URL。文件会下载到当前目录。
wget https://example.com/file.zip
保存文件到指定位置
可以使用 -O
选项来指定文件下载后的保存路径和文件名。
wget -O /path/to/save/file.zip https://example.com/file.zip
断点续传
如果下载过程中中断了,可以使用 -c
选项继续下载。
wget -c https://example.com/largefile.zip
递归下载
递归下载整个网站(注意:要小心使用这个功能,因为它会下载很多内容)。
wget -r https://example.com
下载速度限制
有时为了不占用过多带宽,可以通过 --limit-rate
选项限制下载速度。
wget --limit-rate=100k https://example.com/file.zip
下载整个网站镜像
wget
支持创建网站的完整镜像,包含网页、图片和其他相关文件,并确保链接在本地可用。
wget --mirror -p --convert-links -P ./localdir https://example.com
--mirror
:启用镜像模式,等价于-r -N -l inf --no-remove-listing
。-p
:下载网页显示所需的所有文件(图片、样式等)。--convert-links
:下载后将文件中的链接转换为本地路径。-P ./localdir
:将下载的文件保存到指定的目录中。
后台下载
使用 -b
选项可以让 wget
在后台下载文件,下载的进度会被输出到一个文件中。
wget -b https://example.com/largefile.zip
# 检查后台下载进度
tail -f wget-log
设置用户代理
有时候为了伪装成浏览器,可以通过 --user-agent
选项设置用户代理。
wget --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)" https://example.com
下载指定时间范围内的文件
你可以通过 --timestamping
选项只下载比本地文件新的文件,适用于同步网站内容。
wget -N https://example.com
实战应用
排除特定文件类型
可以通过 -R
选项排除不需要下载的文件类型,例如不下载 .png
文件:
wget -r -R "*.png" https://example.com
批量下载
如果有多个文件要下载,可以将 URL 写入一个文本文件,然后使用 wget
的 -i
选项批量下载。
wget -i urls.txt
忽略证书验证
有时候 HTTPS 站点的证书可能存在问题,可以通过 --no-check-certificate
忽略证书验证。
wget --no-check-certificate https://example.com/file.zip
通过代理下载
如果你的网络环境需要使用代理,可以通过 --proxy
选项指定代理服务器。
wget --proxy=on --proxy-user=username --proxy-password=password https://example.com/file.zip
使用 xargs
进行并行下载
wget
结合 xargs
可以并行下载多个文件,以加快批量下载的速度。
cat urls.txt | xargs -n 1 -P 5 wget
-n 1
:每次只取一个 URL。-P 5
:并行启动 5 个wget
进程。
批量下载图像
假如你想下载一个图片库中所有 .jpg
格式的图片,可以结合正则表达式和递归选项:
wget -r -l 1 -A "*.jpg" https://example.com/gallery/
自动重试
下载可能会因为网络问题中断,wget
可以通过 --tries
选项指定最大重试次数。
wget --tries=10 https://example.com/file.zip
总结
wget
是一个功能强大且灵活的下载工具,不仅适用于简单的文件下载,还可以用于网站的镜像、批量下载、断点续传等。无论你是下载单个文件还是整个网站,wget
都是不可多得的好帮手。