首页/博客/教程/Mac 上如何一次将多个 PDF 文件批量重命名为不同名称
教程12 分钟阅读

Mac 上如何一次将多个 PDF 文件批量重命名为不同名称

Renomee 团队

发布于 2026年9月17日 · 更新于 2026/9/17

Mac 上如何一次将多个 PDF 文件批量重命名为不同名称

在 Finder 中选中 30 个 PDF,按 Enter 键,输入名称——结果是 发票 1.pdf、发票 2.pdf、发票 3.pdf。同一个基础名加上序号,不是你想要的。

你真正需要的是这样的效果:

scan_0001.pdf → 阿里巴巴-发票-2026-09-17.pdf
scan_0002.pdf → 办公室租赁合同-2026.pdf
scan_0003.pdf → 招商银行-流水-8月.pdf

每个文件得到不同的、有意义的名字。macOS 提供了多种工具——哪种最合适,取决于每个新名字从哪里来。

快速答案: 统一基础名+编号 → Finder「格式」模式。替换某个片段 → Finder「替换文本」或终端。已有名称清单 → bash + CSV。从 PDF 元数据取名 → Python。从文档内容或扫描件取名 → Renomee for Mac。


先判断你的改名任务是哪种类型

你真正需要的示例最佳方案
统一基础名 + 自动编号报告_001.pdf、报告_002.pdfFinder「格式」
替换所有文件名中的某个片段2025_报告.pdf → 2026_报告.pdfFinder「替换文本」或终端
已有每个文件对应的新名称清单200 个 PDF,200 个不同新名字终端 + CSV 或 Renomee
新名称存储在 PDF 元数据里标题字段:「Q3 销售报告」Python + PyMuPDF 或 Renomee
新名称来自文档内容供应商、日期、发票号、扫描文字Renomee for Mac

分界线:如果新名称来自你能描述的规则,macOS 内置工具够用。如果每个名称都要从文件内部读取,就需要内容识别能力。


Finder 批量重命名能做什么,不能做什么

Finder 内置批量重命名功能:选中多个文件 → 右键 → 重命名。

三种模式:

模式作用示例输出
替换文本替换所有文件名中的某个片段2025_报告.pdf → 2026_报告.pdf
添加文本为所有文件名添加前缀或后缀报告.pdf → 财务_报告.pdf
格式给所有文件统一命名加序号报告_001.pdf、报告_002.pdf

Finder 做不到的: 从一个名称清单为每个文件分配完全独立的名字。三种模式都只能对所有选中文件统一应用一条规则。

要做到真正的「每个文件不同名字」——来自清单、元数据或文档内容——需要用终端、Python 或专用工具。


场景一:在 Mac 上将所有 PDF 统一重命名为同一基础名加序号

最简单的情况——所有 PDF 共享一个基础名,用编号区分。

Finder「格式」模式(无需安装任何工具)

  1. 在 Finder 中选中所有目标 PDF。
  2. 右键 → 重命名。
  3. 选择格式。
  4. 将「名称格式」设为「名称和计数器」,输入基础名称如「发票」,设置「开始编号」为 1。

结果:

发票_1.pdf
发票_2.pdf
发票_3.pdf

相比 Windows 的 F2,Finder 的格式模式更灵活:可以选择分隔符(_ 或 -)、起始编号,以及使用计数器、索引还是日期。

注意: 编号顺序跟随 Finder 当前的排序方式。重命名前先按你想要的列排序。

Renomee for Mac

用自然语言描述规则:

"将所有文件按修改日期排序,命名为「发票」,从 001 开始,三位数编号。"

预览:

原始文件名             新文件名
scan_0001.pdf   →   发票_001.pdf
scan_0002.pdf   →   发票_002.pdf
scan_0003.pdf   →   发票_003.pdf

可以控制排序方式、编号位数和分隔符。执行后支持一键撤销。


场景二:在 Mac 上批量替换所有 PDF 文件名中的某个片段

每个文件保留自己独特的部分,只改一个共同片段——年份、项目代码、前缀。

2025_Q1_上海.pdf  →  2026_Q1_上海.pdf
2025_Q2_北京.pdf  →  2026_Q2_北京.pdf
2025_Q3_广州.pdf  →  2026_Q3_广州.pdf

Finder「替换文本」(无需终端)

  1. 选中 PDF 文件。
  2. 右键 → 重命名。
  3. 选择替换文本,在「查找」输入 2025,在「替换为」输入 2026。
  4. 点击重命名。

简单文字替换,无需脚本。Cmd+Z 可立即撤销,过后不可恢复。

终端

打开终端,cd 进入 PDF 所在文件夹,执行:

for f in *.pdf; do mv "$f" "${f/2025/2026}"; done

为所有 PDF 添加前缀:

for f in *.pdf; do mv "$f" "财务_$f"; done

先预览——把 mv 换成 echo 确认结果,再去掉 echo 执行:

for f in *.pdf; do echo mv "$f" "${f/2025/2026}"; done

注意: 终端没有撤销功能,错误的规则会静默改错所有文件。

Renomee for Mac

直接描述:

"把所有文件名中的『2025』替换为『2026』。"

每个文件并排显示原始名称和新名称,执行后支持完整撤销。


场景三:在 Mac 上从预先准备好的名称清单批量重命名 PDF

你已经知道每个文件的目标名称,只是不想逐个手动改。

终端 —— bash + CSV

创建 names.csv,每行一对新旧文件名:

scan_0001.pdf,阿里巴巴-发票-2026-09-17.pdf
scan_0002.pdf,办公室租赁合同-2026.pdf
scan_0003.pdf,招商银行-流水-8月.pdf

在 PDF 所在文件夹中执行:

while IFS=, read old new; do
  mv "$old" "$new"
done < names.csv

先预览,不实际执行:

while IFS=, read old new; do
  echo "mv \"$old\" \"$new\""
done < names.csv

常见出错原因:

  1. 文件名含空格 —— 务必用引号包裹:"$old",而非 $old。
  2. CSV 中逗号后有空格 —— 会导致 mv 静默失败。
  3. 行数与文件数不符 —— CSV 多行或少行都会导致部分文件遗漏。

注意: 循环执行后无法撤销。先备份文件名:

ls *.pdf > filenames_backup.txt

Renomee for Mac

无需手动写循环,直接导入 CSV 即可。

  1. 打开 Renomee,将 PDF 拖入。
  2. 点击「导入名称清单」,选择准备好的 CSV 文件。
  3. Renomee 自动按文件名匹配每一行,逐文件展示预览:
原始文件名          CSV 中的目标名称
scan_0001.pdf   →   阿里巴巴-发票-2026-09-17.pdf
scan_0002.pdf   →   办公室租赁合同-2026.pdf
scan_0003.pdf   →   招商银行-流水-8月.pdf

执行前,Renomee 会标记重复目标名和行数与文件数不符的情况。

  1. 确认后执行,随时可撤销。

场景四:在 Mac 上用 PDF 内部存储的元数据命名文件

PDF 携带元数据字段:标题(Title)、作者、主题、关键词。当标题字段有内容时——常见于从 Word、ERP 系统或学术数据库导出的 PDF——它是最干净的命名来源,无需解析文档正文。

在 Mac 上查看 PDF 元数据

选中 PDF → Cmd+I(显示简介)。在更多信息下面查看标题字段。若显示有用的文字(如「2026 年 Q3 销售报告」)就可以直接用。若为空或与文件名相同,说明该字段未填写。

Python + PyMuPDF(免费,Mac 可用)

pip3 install pymupdf
import fitz  # PyMuPDF
import os

folder = "/Users/你的用户名/Documents/PDFs"

for filename in os.listdir(folder):
    if not filename.lower().endswith(".pdf"):
        continue

    path = os.path.join(folder, filename)
    doc = fitz.open(path)
    title = doc.metadata.get("title", "").strip()
    doc.close()

    if not title:
        print(f"无标题元数据:{filename}")
        continue

    # 去除 macOS 文件名中不合法的字符
    safe_title = title.replace("/", "-").replace(":", "-").strip()
    new_name = safe_title[:120] + ".pdf"
    new_path = os.path.join(folder, new_name)

    if os.path.exists(new_path):
        print(f"目标已存在,跳过:{new_name}")
        continue

    os.rename(path, new_path)
    print(f"{filename}  →  {new_name}")

先空跑: 注释掉 os.rename() 这行,确认打印输出正确后再执行。

Renomee for Mac

无需 Python,直接拖入即可。

  1. 打开 Renomee,将 PDF 拖入。
  2. 描述命名规则:

    "用每个 PDF 的标题字段作为文件名;如果标题为空,从首页提取供应商名称和日期。"

  3. Renomee 读取每个文件的元数据并逐一展示预览:
原始文件名          读取到的标题字段              新文件名
report_A.pdf    Q3 2026 销售报告 - 上海   →   Q3-2026-销售报告-上海.pdf
report_B.pdf    (标题为空,回退到内容)   →   阿里巴巴-2026-09-17.pdf
report_C.pdf    2026 年度财务审计报告      →   2026年度财务审计报告.pdf
  1. 确认后执行,随时可撤销。

场景五:在 Mac 上让 PDF 文档内容决定文件名——OCR 与文字提取

Finder、Automator、终端只能操作文件名本身。一个叫 scan_0042.pdf 的文件,没有任何工具能从名称判断它是发票、合同还是银行流水。

基于规则的重命名:文件名 → 文件名
基于内容的重命名:文档内容 → 文件名

目标效果:

scan_0042.pdf → 阿里巴巴-发票-2026-09-17-ALY88421.pdf
scan_0043.pdf → 办公室租赁合同-2026.pdf
scan_0044.pdf → 招商银行-流水-2026年8月.pdf

可搜索 PDF(有文字层)—— Python + PyMuPDF

import fitz
import os
import re

folder = "/Users/你的用户名/Documents/PDFs"

for filename in os.listdir(folder):
    if not filename.lower().endswith(".pdf"):
        continue

    path = os.path.join(folder, filename)
    doc = fitz.open(path)
    text = doc[0].get_text("text") if doc.page_count > 0 else ""
    doc.close()

    # 示例:提取 YYYY-MM-DD 格式的日期
    date_match = re.search(r'\d{4}-\d{2}-\d{2}', text)
    date_str = date_match.group() if date_match else "未知日期"

    new_name = f"文档-{date_str}.pdf"
    print(f"{filename}  →  {new_name}")
    # os.rename(path, os.path.join(folder, new_name))

仅适用于有文字层的 PDF。扫描件(纯图像)调用 get_text() 会返回空字符串。Mac 上可以用 Homebrew 安装 Tesseract(brew install tesseract)再加 pytesseract 做 OCR,但组合 OCR + 文字解析 + 重命名需要相当的配置成本。

Renomee for Mac

内置 OCR,无需安装 Homebrew 或 Tesseract。

  1. 打开 Renomee,将 PDF 拖入。
  2. 用自然语言描述命名规则:

    "从每个文件中提取供应商名称、开票日期和发票号。格式:供应商-日期-发票号.pdf。"

  3. Renomee 处理每个文件并逐一展示预览:
原始文件名        提取内容                                                新文件名
scan_0042.pdf   供应商: 阿里巴巴 | 日期: 2026-09-17 | 发票: ALY-88421   →  阿里巴巴-2026-09-17-ALY88421.pdf
scan_0043.pdf   类型: 租赁合同 | 日期: 2026 | 标题: 办公室租赁            →  办公室租赁合同-2026.pdf
scan_0044.pdf   供应商: 招商银行 | 账期: 2026年8月                        →  招商银行-流水-2026年8月.pdf
  1. 确认后执行,随时可撤销。

Renomee 在 Mac 和 Windows 上的使用方式完全相同,详细的 PDF 内容命名流程参见如何根据内容重命名 PDF 文件。


快速对照:Mac 端各方案比较

方案需要安装支持撤销OCR/内容提取无需写代码
Finder 批量重命名无Cmd+Z(仅立即撤销)✗✅
终端 bash无✗✗极少
Python + PyMuPDFpip3 install✗仅文字层✗
Tesseract + Pythonbrew + pip3✗OCR✗
Renomee for Mac安装 App✅ 随时可撤销OCR + AI✅

执行前快速检查清单

  1. 保留 .pdf 扩展名 —— bash 中 ${f/2025/2026} 只有在匹配字符串不包含扩展名时才能保留,务必确认。
  2. 先预览 —— bash 中把 mv 换成 echo mv 验证输出。
  3. 先在副本上测试 —— 复制 5—10 个文件到测试文件夹,先跑一遍再操作原始文件。
  4. 给变量加引号 —— bash 中一定用 "$f" 而非 $f,文件名含空格时后者会出错。
  5. 备份当前文件名 —— ls *.pdf > filenames_backup.txt

常见问题

macOS 有内置工具能给每个 PDF 重命名为完全不同的名字吗?

Finder 支持统一规则——替换某段文字、加前缀后缀、加序号。要给每个文件分配完全独立的名字(来自清单或内容),需要用终端、Python 或 Renomee for Mac。

Mac 上最快的无代码批量改 PDF 名方案是什么?

Finder 的「替换文本」或「添加文本」可以处理简单替换,不需要写代码。对于清单式或内容提取式命名,Renomee for Mac 是无代码方案——用自然语言描述规则,确认逐文件预览后执行。

如何在 Mac 上用 Numbers 或 Excel 表格批量重命名 PDF?

将表格导出为 CSV,用 bash 循环执行:

while IFS=, read old new; do mv "$old" "$new"; done < names.csv

或直接在 Renomee for Mac 中导入 CSV——自动匹配,执行前显示预览,有异常自动标记。

Mac 上有没有类似 Windows PowerRename 的工具用于 PDF 重命名?

macOS 没有直接对应的内置工具。Finder 的批量重命名覆盖基础的查找替换场景。需要逐文件预览和更复杂规则时,Renomee for Mac 可以满足。

Mac 上如何不写代码地重命名扫描件 PDF?

安装 Renomee for Mac,将扫描件 PDF 拖入,描述要提取的信息(如「每张发票的供应商名称和日期」),Renomee 对每个文件运行内置 OCR 并生成命名建议,你在预览中确认后再执行。

Mac 上批量改名 PDF 后能撤销吗?

Finder 重命名后可以立即 Cmd+Z 撤销。终端的 mv 和 Python 的 os.rename() 不可逆。Renomee for Mac 会记录每次操作,随时支持一键撤销。

Renomee for Mac 支持 Apple Silicon 芯片吗?

支持,Renomee 在 Apple Silicon(M1/M2/M3/M4)和 Intel 芯片的 Mac 上均可原生运行。


总结

在 Mac 上批量重命名多个 PDF 为不同名称,始终回归一个问题:每个名称从哪里来?

  • 统一基础名 + 序号 → Finder「格式」
  • 替换某个片段 → Finder「替换文本」或终端
  • 已有名称清单 → bash + CSV 或 Renomee for Mac
  • 从 PDF 元数据取名 → Python + PyMuPDF
  • 从文档内容或扫描件取名 → Renomee for Mac

规则明确时,Finder 和终端是门槛最低的选项。如果每个名称必须从 PDF 内部读取——尤其是扫描件——Renomee 可以处理可搜索和扫描两种类型,内置预览,无需额外配置 OCR。

标签

#Mac重命名PDF#Mac批量改PDF文件名#多个PDF不同名称Mac#PDF文件管理Mac#macOS批量重命名

关于作者

Renomee 团队 是 Renomee 的内容贡献者。