Mac终端下载命令有哪些?

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

mac 终端下载命令
(图片来源网络,侵删)

使用 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 终端下载命令
    (图片来源网络,侵删)
  • 下载文件并显示进度条

    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 终端下载命令
    (图片来源网络,侵删)
    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 层,且不创建子目录,所有文件保存在当前目录。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/424216.html<

(0)
运维的头像运维
上一篇2025-10-25 17:56
下一篇 2025-10-25 17:59

相关推荐

  • wget命令Linux下载怎么用?

    在Linux系统中,wget是一款非常流行的命令行下载工具,它支持HTTP、HTTPS、FTP等多种协议,能够递归下载、断点续传,并且可以在后台执行下载任务,wget以其简洁高效的特点,成为系统管理员和开发者的常用工具之一,本文将详细介绍wget的使用方法,包括基本语法、常用参数、实际应用场景以及一些高级技巧……

    2025-11-20
    0
  • curl命令如何正确设置header?

    在Linux和Unix-like系统中,curl是一个非常强大的命令行工具,用于传输数据,它支持多种协议,包括HTTP、HTTPS、FTP、FTPS等,并且可以通过设置HTTP头部(Headers)来定制请求行为,HTTP头部是客户端和服务器之间传递的元数据,用于描述请求或响应的属性,如内容类型、认证信息、缓存……

    2025-11-20
    0
  • CRT下载命令有哪些?

    在Linux和Unix-like系统中,CRT(通常指SecureCRT等终端模拟器)本身并不需要通过命令行下载安装,但用户可能需要通过命令行下载其安装包或依赖工具,以下是常见的CRT相关下载及安装命令的详细说明,适用于不同发行版和场景,对于基于Debian/Ubuntu的系统,若需下载SecureCRT的安装……

    2025-11-19
    0
  • Linux下如何用命令下载JDK?

    在Linux系统中下载和安装JDK(Java Development Kit)是Java开发环境搭建的基础步骤,Linux作为服务器和开发环境的主流操作系统,提供了多种方式获取JDK,包括使用包管理器、手动下载安装包、通过包仓库等,本文将详细介绍不同Linux发行版下JDK的下载方法、安装步骤及环境变量配置,帮……

    2025-11-17
    0
  • Dos命令行如何下载文件?

    在Windows操作系统中,尽管图形界面的下载工具日益丰富,但命令行环境下的下载功能依然凭借其高效、自动化和脚本友好等特性,在特定场景下发挥着不可替代的作用,DOS命令行本身并不直接支持网络下载功能,但通过集成第三方工具或调用系统内置组件,同样可以实现文件的下载任务,以下将详细介绍几种在DOS命令行环境下实现下……

    2025-11-13
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注