菜鸟科技网

mac命令行如何高效下载文件?

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

mac命令行如何高效下载文件?-图1
(图片来源网络,侵删)

使用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 -选项实现断点续传:

mac命令行如何高效下载文件?-图2
(图片来源网络,侵删)
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选项指定代理地址:

mac命令行如何高效下载文件?-图3
(图片来源网络,侵删)
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表示下载两级目录。

分享:
扫描分享到社交APP
上一篇
下一篇