在Linux系统中,使用命令行下载文件是日常运维和开发中的常见需求,常用的下载工具包括wget、curl、aria2c等,这些工具功能强大且支持多种协议,以下是具体的使用方法和场景说明。

使用wget下载文件
wget是Linux中最经典的下载工具,支持HTTP、HTTPS、FTP等多种协议,具有断点续传、后台下载等功能。
- 基本下载:下载单个文件
wget http://example.com/file.zip
- 指定保存目录:通过
-P参数指定保存路径wget -P /path/to/directory http://example.com/file.zip
- 断点续传:网络中断后可通过
-c参数继续下载wget -c http://example.com/largefile.iso
- 限速下载:通过
--limit-rate限制下载速度(如1MB/s)wget --limit-rate=1M http://example.com/file.zip
- 批量下载:结合
-i参数从文件中读取URL列表wget -i urls.txt
使用curl下载文件
curl功能更丰富,支持HTTP/HTTPS、FTP、SCP等协议,常用于与API交互或下载动态生成的文件。
- 基本下载:直接下载到当前目录
curl -O http://example.com/file.zip
- 重命名文件:通过
-o参数指定保存名称curl -o newname.zip http://example.com/file.zip
- 显示下载进度:添加进度条
curl -# -O http://example.com/largefile.iso
- 跟随重定向:默认跟随,可通过
-L参数强制启用curl -L -O http://example.com/redirect-link
使用aria2c加速下载
aria2c支持多线程、BT/磁力链接下载,适合大文件或资源匮乏场景。
- 基本下载:自动启用16线程
aria2c -x 16 http://example.com/file.zip
- 下载磁力链接:需安装
libtorrent依赖aria2c "magnet:?xt=urn:btih:..."
- 配置文件:通过
-i读取配置,支持自定义线程数、代理等
工具对比与选择
| 工具 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
wget |
简单易用,支持断点续传 | 功能相对单一 | 常规HTTP/FTP文件下载 |
curl |
协议支持广,适合API交互 | 需手动添加参数实现复杂功能 | 动态资源下载、API调用 |
aria2c |
多线程加速,支持BT/磁力链接 | 需额外安装,配置稍复杂 | 大文件、P2P资源下载 |
注意事项
- 权限问题:确保对目标目录有写入权限,否则需使用
sudo或调整目录权限。 - 代理配置:通过
-e参数(wget)或--proxy(curl)指定代理服务器。 - SSL证书:若遇证书错误,可使用
--no-check-certificate(wget)或-k(curl)跳过验证(不推荐生产环境使用)。
相关问答FAQs
Q1: 如何使用wget下载整个网站?
A: 通过-r(递归)、-np(不抓取父目录)、-k(转换链接)参数组合实现,

wget -r -np -k http://example.com/directory/
Q2: curl如何下载文件并显示HTTP状态码?
A: 使用-I参数可仅获取响应头(含状态码),
curl -I http://example.com/file.zip
若需下载同时显示状态码,可结合-w参数自定义输出,如curl -w "%{http_code}\n" -O http://example.com/file.zip。

