在macOS系统中,用户可以通过多种命令行工具下载文件,这些工具功能强大且灵活,适用于不同的下载场景,常见的下载命令包括curl、wget、ftp/sftp等,它们各自具有独特的特点和适用场景,本文将详细介绍这些命令的使用方法、参数配置以及实际应用技巧,帮助用户高效完成文件下载任务。

curl是macOS中最常用的下载工具之一,它支持多种协议,如HTTP、HTTPS、FTP、FTPS等,并且可以处理 cookies、认证、代理等复杂场景,curl的基本语法为curl [选项] [URL]
,其中最常用的选项包括-O
(保留远程文件名)、-o
(指定本地文件名)、-L
(跟随重定向)等,下载并保留远程文件名可直接使用curl -O URL
,而若需指定保存路径和文件名,则使用curl -o /path/to/local/file URL
,curl还支持断点续传,通过-C -
选项可实现中断后从断点继续下载,这在下载大文件时尤为实用,curl可以通过-u
选项添加用户名和密码,用于需要认证的下载场景,例如curl -u username:password -O URL
。
wget是另一个强大的下载工具,虽然在macOS中默认未安装,但可通过Homebrew轻松安装(brew install wget
),wget的特点是支持递归下载、镜像网站以及后台下载,其基本语法为wget [选项] [URL]
,常用选项包括-c
(断点续传)、-b
(后台下载)、-r
(递归下载)等,后台下载文件可使用wget -b URL
,下载过程中会生成wget-log
文件记录进度,wget的递归下载功能适用于整站下载,通过-m
(镜像)选项可完整复制网站结构,例如wget -m URL
,与curl相比,wget在处理批量下载和网站镜像时更具优势,但curl在协议支持和灵活性上更胜一筹。
对于FTP/SFTP协议的文件下载,macOS内置了ftp和sftp命令,ftp是传统的文件传输协议工具,适用于不加密的传输场景,而sftp基于SSH协议,更安全,使用ftp时,可通过ftp [服务器地址]
进入交互式模式,然后使用get [远程文件] [本地文件]
命令下载文件,sftp的用法类似,通过sftp [用户名]@[服务器地址]
连接后,使用get
命令下载,需要注意的是,ftp传输明文数据,安全性较低,建议优先使用sftp,macOS还支持scp命令(基于SSH的文件复制),语法为scp [用户名]@[服务器地址]:[远程路径] [本地路径]
,适用于快速传输单个文件。
除了上述工具,rsync也是一款高效的文件同步和下载工具,尤其适合大文件和目录的增量传输,rsync的基本语法为rsync [选项] [源路径] [目标路径]
,常用选项包括-a
(归档模式)、-z
(压缩传输)、-P
(显示进度并支持断点续传)等,从远程服务器下载目录并保留权限和时间戳,可使用rsync -avzP [用户名]@[服务器地址]:[远程目录] [本地目录]
,rsync的优势在于只传输变化的部分,节省带宽和时间,适用于频繁同步的场景。

在实际使用中,用户可能需要根据具体需求选择合适的工具,下载普通HTTP/HTTPS文件时,curl简单高效;批量下载或镜像网站时,wget更合适;安全传输则优先选择sftp或rsync,还可以结合管道和重定向实现复杂操作,如通过curl -s URL | grep keyword
提取网页内容后直接处理,或使用wget -i filelist.txt
批量下载文件列表中的URL。
为了更直观地比较不同工具的特点,以下表格总结了常用下载命令的核心功能:
工具名称 | 支持协议 | 核心功能 | 安装方式 |
---|---|---|---|
curl | HTTP/HTTPS/FTP等 | 单文件下载、断点续传、协议灵活 | 系统自带 |
wget | HTTP/HTTPS/FTP等 | 批量下载、镜像网站、后台下载 | 需通过Homebrew安装 |
ftp/sftp | FTP/SFTP | 传统文件传输、安全传输 | 系统自带 |
rsync | SSH/Rsync | 增量同步、高效大文件传输 | 系统自带或通过Homebrew安装 |
在使用这些命令时,用户还需注意网络环境、服务器权限以及文件权限等问题,下载到系统目录(如/usr/local
)可能需要sudo权限,而某些服务器可能限制了匿名下载,对于大文件下载,建议使用断点续传功能,避免因网络中断导致下载失败。
相关问答FAQs:

-
问:curl和wget有什么区别?如何选择?
答:curl和wget都是强大的下载工具,但侧重点不同,curl支持更多协议(如SMTP、IMAP等),适合需要灵活协议支持的场景,且默认支持交互式操作;wget则擅长批量下载和网站镜像,支持后台下载和递归抓取,若只需下载单个HTTP/HTTPS文件,curl更简洁;若需整站下载或批量处理,wget更高效,macOS默认已安装curl,wget需通过Homebrew安装。 -
问:如何解决下载大文件时网络中断的问题?
答:可通过断点续传功能解决,curl使用-C -
选项(如curl -C - -O URL
),wget使用-c
选项(如wget -c URL
),rsync使用-P
选项(如rsync -avzP URL
),这些工具会记录已下载的字节数,中断后可从断点继续,避免重新下载,确保目标目录有足够存储空间,并检查网络稳定性以减少中断风险。