用 Shell 循环给文件批量加序号重命名

一行 for 循环把一批文件改成 photo-001、photo-002 的顺序编号,无需第三方工具。

macOS重命名文件中风险
粘贴这条带 mv 和 printf %03d 的 for 循环,即可把匹配的文件按顺序编号。

01命令

命令
$ cd ~/Desktop/Photos && i=1; for f in *.jpg; do mv "$f" "photo-$(printf '%03d' $i).jpg"; i=$((i+1)); done

02作用说明

通配符 *.jpg 按字母顺序展开,顺序重要时先确认文件名排序。%03d 表示三位数字,可改成 %02d 或 %04d;photo- 前缀可自由修改。把 mv 换成 echo mv 先运行一遍,可以预览新文件名而不真正改名。

03风险

风险中风险
!注意: 目标名若已存在会被直接覆盖;执行前先检查文件夹里是否已有 photo-001 之类的文件。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

  • mv – Move or rename files
    ss64.com · technical · 2026-09-17
    依据: mv renames files in place; quoting "$f" keeps names with spaces safe.
  • Rename files, folders, and disks on Mac
    Apple Support · vendor-doc · 2026-09-17
    依据: Finder can rename batches, but only with a text pattern — a shell loop gives ordered sequence numbers.

最后验证: 2026-09-18 · 分类: 文件与文件夹

06相关方案