批量替换文件名中的文字来重命名
用 shell 循环加参数展开安全地批量改名,无需第三方工具。
在目标文件夹运行 `for f in *旧字*; do mv -n "$f" "${f//旧字/新字}"; done`。
01命令
命令
$ cd ~/Downloads/照片 && for f in *IMG*; do mv -n "$f" "${f//IMG/照片}"; done02作用说明
Bash 的 `${f//old/new}` 会替换变量中所有匹配,引号可以防止空格把文件名拆开——这两点是批量改名最常见的翻车原因。`mv -n` 遇到同名文件不会覆盖。把 `mv -n` 换成 `echo mv -n` 可以先空跑一遍预览改名效果。
03风险
!注意: 正式改名前务必先空跑预览;`${f//…}`(两个斜杠)替换所有匹配,`${f/…}`(一个斜杠)只替换第一个;系统没有内置撤销,反向循环是唯一保险,执行后建议打开文件夹窗口核对。
04撤销
撤销
$ cd ~/Downloads/照片 && for f in *照片*; do mv -n "$f" "${f//照片/IMG}"; done05来源
- rename – Renames multiple files依据: Bash parameter expansion replaces text inside file names safely
最后验证: 2026-09-18 · 分类: 文件与文件夹