菜鸟科技网

Mac终端下载命令有哪些?

在 macOS 终端中,下载文件是常见的操作,掌握相关的下载命令可以高效地完成文件传输任务,macOS 终端默认支持多种下载工具,如 curlwgetpython 等,这些工具各有特点,适用于不同的下载场景,以下将详细介绍这些命令的使用方法、参数选项及实际应用案例。

Mac终端下载命令有哪些?-图1
(图片来源网络,侵删)

使用 curl 命令下载文件

curl 是 macOS 终端中预装的强大工具,支持 HTTP、HTTPS、FTP、FTPS 等多种协议,功能丰富且灵活。

基本语法

curl 的基本语法为 curl [选项] URL,URL 为目标文件的下载地址。

常用参数及功能

  • -o--output:指定下载文件的保存名称及路径。curl -o example.txt https://example.com/example.txt 将文件保存为 example.txt
  • -Oremote-name:使用 URL 中的文件名保存。curl -O https://example.com/example.txt 会直接下载并命名为 example.txt
  • -Llocation:跟随重定向,若目标 URL 发生跳转,-L 会自动跟随新的地址下载。
  • -Ccontinue-at:断点续传。curl -C - -O https://example.com/largefile.zip 可从上次中断的位置继续下载。
  • progress-bar:显示进度条,便于监控下载状态。
  • -ssilent:静默模式,不显示进度信息,适合脚本中使用。
  • -ffail:服务器返回错误时(如 404),不输出内容,便于脚本判断下载是否成功。

实际应用案例

  • 下载单个文件并重命名

    curl -o macOS_manual.pdf https://support.apple.com/manuals/macbook-pro.pdf

    此命令将苹果官方的 MacBook Pro 手册下载并保存为 macOS_manual.pdf

    Mac终端下载命令有哪些?-图2
    (图片来源网络,侵删)
  • 下载文件并显示进度条

    curl -# -O https://releases.ubuntu.com/22.04.3/ubuntu-22.04.3-desktop-amd64.iso

    会显示实时进度条,适合下载大文件时查看进度。

  • 断点续传大文件
    若下载 largefile.zip 时因网络中断,可执行以下命令继续下载:

    curl -C - -O https://example.com/largefile.zip
  • 通过代理下载
    若需要通过代理服务器下载,可使用 -x 参数:

    Mac终端下载命令有哪些?-图3
    (图片来源网络,侵删)
    curl -x http://proxy.example.com:8080 -O https://example.com/file.zip

使用 wget 命令下载文件

wget 是另一个流行的下载工具,虽然 macOS 终端默认未安装,但可通过 Homebrew 轻松添加。wget 的特点是支持后台下载、递归下载等功能。

安装 wget

若未安装 wget,先通过 Homebrew 安装:

brew install wget

基本语法

wget 的基本语法为 wget [选项] URL

常用参数及功能

  • -O:指定保存文件名,与 curl 类似。
  • -c:断点续传,与 curl-C - 功能相同。
  • --limit-rate:限制下载速度,--limit-rate=1m 限制为 1MB/s。
  • -bbackground:后台下载,适合长时间任务。
  • -rrecursive:递归下载,可下载整个网站(需配合其他参数限制范围)。
  • -A:指定允许下载的文件类型,-A pdf,jpg 仅下载 PDF 和 JPG 文件。

实际应用案例

  • 安装后下载文件

    wget -O wget_help.txt https://www.gnu.org/software/wget/manual/wget.html
  • 限制下载速度并后台运行

    wget --limit-rate=500k -b -O largefile.zip https://example.com/largefile.zip

    此命令以 500KB/s 的速度下载,并在后台运行,日志保存在 wget-log 文件中。

  • 递归下载网站图片

    wget -r -A jpg,png https://example.com/gallery/

    此命令会递归下载 gallery 目录下的所有 JPG 和 PNG 图片。

使用 python 下载文件

若系统中安装了 Python(macOS 默认预装),可通过 Python 的 urllibrequests 库下载文件,适合需要自定义逻辑的场景(如处理 cookies、 headers 等)。

使用 urllib(无需额外安装)

import urllib.request
url = "https://example.com/file.zip"
output_file = "file.zip"
urllib.request.urlretrieve(url, output_file)
print(f"文件已保存为 {output_file}")

将上述代码保存为 download.py,通过终端执行 python download.py 即可下载文件。

使用 requests 库(需先安装)

若需更高级的功能(如会话管理、文件流下载),可安装 requests 库:

pip install requests

示例代码:

import requests
url = "https://example.com/largefile.zip"
output_file = "largefile.zip"
response = requests.get(url, stream=True)
with open(output_file, "wb") as f:
    for chunk in response.iter_content(chunk_size=8192):
        f.write(chunk)
print(f"文件已保存为 {output_file}")

stream=True 表示以流式方式下载,适合大文件,避免内存占用过高。

不同下载工具的对比

以下从易用性、功能、适用场景等方面对比 curlwgetpython

工具 优点 缺点 适用场景
curl 系统预装,支持协议多,参数灵活 语法较复杂,需记忆参数 简单下载、API 调用、自定义请求
wget 支持后台下载、递归下载 需额外安装,部分功能需配置 大文件下载、网站镜像、批量下载
python 灵活性高,可处理复杂逻辑 需编写脚本,依赖库(如 requests) 自定义下载逻辑、处理 cookies/headers

注意事项

  1. 权限问题:确保终端对目标目录有写入权限,否则下载会失败。
  2. 网络环境:若使用代理或需要校验 SSL 证书,需通过参数正确配置(如 curl-x--cacert)。
  3. 文件完整性:下载完成后,可通过 shasummd5 命令校验文件哈希值,确保文件未被篡改。

相关问答 FAQs

问题 1:如何使用 curl 下载文件时同时显示下载速度和预计剩余时间?
解答:通过 -l(或 --limit-rate 限制速度)和 显示进度条,curl 会自动估算剩余时间。

curl -# -l -O https://example.com/largefile.zip

若需手动限制速度(如 1MB/s),可使用:

curl --limit-rate=1m -# -O https://example.com/largefile.zip

问题 2:wget 递归下载时如何避免下载重复文件或限制层级?
解答:wget 提供了 -np(不向上遍历父目录)和 -nd(不创建目录结构)参数,以及 -l(限制层级)参数。

wget -r -np -nd -l 2 -A pdf https://example.com/docs/

此命令会递归下载 docs 目录下的 PDF 文件,最多遍历 2 层,且不创建子目录,所有文件保存在当前目录。

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