macOS终端可用系统自带for循环+mv批量改名:加前缀/后缀、替换文字、序号重命名;需用"$f"防空格错误,先echo预览再执行。macOS终端批量修改多个文件名,不需要装额外工具,用系统自带的 `for` 循环 + `mv` 命令就能搞定。关键在于写对通配符、处理好空格和特殊字符,避免报错。
基础加前缀或后缀(最常用)
适用于统一添加时间、项目代号、备份标记等。
- 给当前目录所有 .pdf 文件加前缀 2026_:
for f in *.pdf; do mv "$f" "2026_$f"; done - 给所有 .jpg 文件加后缀 _final:
for f in *.jpg; do mv "$f" "${f%.jpg}_final.jpg"; done(${f%.jpg}表示去掉末尾 .jpg)
替换文件名中的固定文字
比如把所有文件里的 draft 换成 final,或把空格换成下划线。
- 把空格替换成下划线(注意要先匹配含空格的文件名):
for f in *\ *; do mv "$f" "${f// /_}"; done - 把文件名中第一个 old 替换为 new:
for f in *old*; do mv "$f" "${f/old/new}"; done - 把所有 old 全部替换(全局):
for f in *old*; do mv "$f" "${f//old/new}"; done
按序号重命名(需手动控制顺序)
如果想让文件变成 report_001.pdf、report_002.pdf 这样,推荐先用 ls 看顺序,再执行。
- 简单编号(不补零):
i=1; for f in *.txt; do mv "$f" "report_$i.txt"; ((i++)); done - 三位补零编号(001, 002…):
i=1; for f in *.png; do mv "$f" "$(printf "photo_%03d.png" $i)"; ((i++)); done
安全提醒与常见避坑
这些小细节不注意容易出错甚至丢文件:
- 务必用英文双引号包裹
"$f"和新名称,否则含空格、括号、中文的文件会报错 - 运行前先用
echo预览效果,例如:for f in *.log; do echo mv "$f" "backup_$f"; done→ 确认输出无误后再删掉echo执行 - 不要在系统目录(如
/usr、/System)或正在使用的文件上操作 - 建议先复制一份测试文件夹,练熟再动正式数据


















