首页/系统/Linux 运维命令速查/场景:批量重命名文件(循环 + mv)
本包目录(613 条)
文件与目录76 条
文本处理77 条网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:批量重命名文件(循环 + mv)

把 *.jpeg 全改成 *.jpg 这类批量改名:shell 循环 + 参数扩展是通用公式,动手前先 echo 干跑。

Linux 运维命令速查系统更新于 2026-10-12
场景通配符批量改名
工具for 循环 + mv + 参数扩展 / rename 命令
纪律先 echo 预览再执行

循环版(先干跑)

循环版(先干跑)
for f in *.jpeg; do echo mv -- "$f" "${{f%.jpeg}.jpg"; done
for f in *.jpeg; do mv -- "$f" "${{f%.jpeg}.jpg"; done

rename 版

rename 版
rename 's/[.]jpeg$/.jpg/' *.jpeg      # Perl 版
rename .jpeg .jpg *.jpeg              # util-linux 版
参数扩展 $${{f%.jpeg} 去掉后缀再拼新后缀;-- 防止文件名以横杠开头被当选项。

易错点

  • 循环里变量不加引号会被拆词,文件名含空格必坏——引号是纪律不是风格
  • mv 目标名与已有文件撞名会直接覆盖,重要操作前 dry-run 并把清单存档

数据来源与参考

  • man 1 bash(参数扩展)
  • man 1 mv(GNU coreutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌