在Linux系统中,`wget`是一个非常实用的命令行工具,用于从互联网上下载文件。它支持多种选项和参数,可以实现单个文件的下载、断点续传、递归下载整个目录甚至整个网站,以及通过代理服务器进行下载。下面我们将详细讲解这些功能及其用法。
1. **下载单个文件**
使用`wget`的基本语法是提供URL来下载文件,如:
```bash
$ wget http://example.com/file.zip
```
这将直接下载指定的文件到当前目录。
2. **断点续传和后台下载**
若要实现断点续传(即在下载中断后从上次停止的地方继续),可以添加`-c`选项:
```bash
$ wget -c http://example.com/large_file.iso
```
要在后台下载,可以添加`&`符号使命令在后台运行:
```bash
$ wget http://example.com/file.zip &
```
3. **下载HTML页面及关联资源**
如果要下载一个HTML页面及其所有依赖(如图片、CSS、JavaScript等),可以使用`-p`和`-k`选项:
```bash
$ wget -p -k http://example.com/page.html
```
`-p`表示下载页面所需的辅助文件,`-k`将链接转换为本地路径以便离线浏览。
4. **递归下载目录**
要下载整个目录,可以使用`-r`选项:
```bash
$ wget -r -np -k http://example.com/path/to/directory/
```
`-np`禁止进入上层目录,`-k`转换链接。
5. **下载整个网站做本地镜像**
若要创建整个网站的本地副本,可以使用:
```bash
$ wget -m -r -p -np -k http://example.com
```
`-m`启用镜像模式。
6. **限制递归深度和文件类型**
可以通过`-L`、`-R`、`-A`和`-I`选项控制递归行为:
```bash
$ wget -r -L -R gif,jpg http://example.com/path
```
`-L`只跟随同主机的链接,`-R`排除指定文件类型,`-A`指定要下载的文件类型,`-I`指定要处理的目录。
7. **更改文件扩展名**
若要在下载时更改文件扩展名,可以结合`-E`选项:
```bash
$ wget -r -k -p -np -E -I blog,wiki http://example.com
```
`-E`将HTML扩展名更改为`.html`。
8. **批量下载**
创建包含URL的文本文件,然后使用`-i`选项读取它们:
```bash
$ wget -i urls.txt
```
`-o`选项记录日志。
9. **通过代理下载**
若要使用代理服务器,可以设置环境变量或在`~/.wgetrc`配置文件中定义`http_proxy`和`ftp_proxy`:
```bash
# 环境变量设置
export http_proxy=http://proxy.example.com:8080/
export ftp_proxy=http://proxy.example.com:8080/
# 或者在~/.wgetrc中设置
http_proxy = http://proxy.example.com:8080/
ftp_proxy = http://proxy.example.com:8080/
```
然后执行下载命令。
总结起来,`wget`是Linux用户非常强大的工具,通过各种选项和参数可以灵活地执行各种类型的下载任务。熟练掌握`wget`的使用,能极大地提高在Linux环境中的工作效率。