在macOS系统中,命令行工具为文件下载提供了高效灵活的解决方案,尤其适合处理批量任务、自动化脚本或没有图形界面的服务器环境,macOS默认基于Unix系统,内置了多种命令行下载工具,如curl、wget等,这些工具支持多种协议、断点续传、后台下载等功能,能够满足不同场景下的需求,以下将详细介绍mac命令行下载文件的方法、常用工具及其高级用法。

使用curl下载文件
curl是macOS系统自带的工具,功能强大且支持多种协议(HTTP、HTTPS、FTP、FTPS等),是命令行下载的首选工具,其基本语法为curl [选项] URL,通过不同选项可实现灵活的下载控制。
基础下载命令
直接使用curl + URL即可下载文件,默认情况下,文件会保存在当前目录,并以URL中的最后一个名称作为文件名。
curl https://example.com/file.zip
若需指定保存路径和文件名,使用-o或-O选项:
-o:自定义文件名,如curl -o myfile.zip https://example.com/file.zip-O:以URL中的原文件名保存,如curl -O https://example.com/file.zip
断点续传与后台下载
下载大文件时,若网络中断,可通过-C -选项实现断点续传:

curl -C - -O https://example.com/largefile.iso
若需在后台下载(避免终端关闭中断任务),可结合nohup或&符号:
nohup curl -O https://example.com/largefile.iso &
限制下载速度与重试机制
通过--limit-rate选项限制下载速度(单位为字节、K/M/G),如限制为1MB/s:
curl --limit-rate 1M -O https://example.com/file.zip
网络不稳定时,可使用--retry设置重试次数,默认重试10次,可自定义:
curl --retry 5 -O https://example.com/file.zip
通过代理下载
若需通过代理服务器下载,使用-x选项指定代理地址:

curl -x http://proxy.example.com:8080 -O https://example.com/file.zip
使用wget下载文件
wget是另一个常用的下载工具,macOS默认未安装,但可通过Homebrew轻松安装:
brew install wget
wget的优势在于支持递归下载、镜像网站等功能,适合批量下载文件。
基础下载命令
wget的语法相对简洁,直接在命令后跟URL即可:
wget https://example.com/file.zip
默认情况下,文件会以URL中的原文件名保存,也可通过-O选项指定文件名:
wget -o myfile.zip https://example.com/file.zip
断点续传与后台下载
wget默认支持断点续传,若下载中断后重新执行命令,会自动续传,强制启用断点续传可使用-c选项:
wget -c https://example.com/largefile.iso
wget默认在后台运行,无需额外符号,适合长时间任务。
批量下载与镜像网站
通过-i选项读取包含URL的文本文件,实现批量下载:
wget -i urls.txt
若需镜像整个网站(下载所有页面及资源),使用-m选项:
wget -m https://example.com
高级用法与场景示例
结合管道处理下载内容
curl可将下载内容直接通过管道传递给其他命令,如查看HTTP响应头:
curl -I https://example.com
或下载文件并直接解压:
curl -s https://example.com/archive.tar.gz | tar -xz
使用aria2加速下载
aria2是一个多协议、多来源的下载工具,支持多线程加速,可通过Homebrew安装:
brew install aria2
基本用法如下:
aria2c -x 16 -s 16 https://example.com/largefile.iso
-x:单线程最大连接数-s:并行线程数
自动化下载脚本
结合crontab可实现定时下载任务,每天凌晨2点自动下载文件:
0 2 * * * /usr/bin/curl -O /path/to/save/https://example.com/file.zip
工具对比与选择
| 工具 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| curl | 系统自带,协议支持广,灵活 | 语法相对复杂 | 单文件下载、HTTP请求调试 |
| wget | 批量下载、镜像功能强大 | 需额外安装 | 网站镜像、批量文件下载 |
| aria2 | 多线程加速,资源占用低 | 需安装,配置稍复杂 | 大文件下载、高并发任务 |
相关问答FAQs
Q1: 使用curl下载时如何验证文件完整性?
A: 可通过-f选项结合服务器返回的哈希值验证,若服务器提供SHA256校验值,可先下载文件,再计算本地哈希比对:
curl -f -O https://example.com/file.zip && shasum -a 256 file.zip
若需在下载时自动校验,部分服务器支持curl -f -H "Accept: application/octet-stream" --remote-name https://example.com/file.zip,但需服务器端配合返回校验信息。
Q2: 如何通过命令行下载整个FTP目录?
A: 使用wget的-r(递归)和-nH(不创建主机目录)选项,并指定FTP用户名和密码:
wget -r -nH --ftp-user=username --ftp-password=password ftp://ftp.example.com/directory/
若需限制下载层级,可通过-l选项设置递归深度,如-l 2表示下载两级目录。
