推荐使用rename命令,功能强大且简洁:Perl版rename支持正则表达式,可直接批量修改后缀、大小写或空格,如rename 's/.txt$/.log/' *.txt;若系统无Perl版rename,可安装或改用mmv工具,其模式匹配语法直观安全,如mmv 'a?.txt' 'new#1.txt';最通用方式是for循环配合mv,适用于所有系统,如for f in *.log; do mv "$f" "backup_$f"; done,注意加双引号防空格错误并先用echo测试。

Linux 批量重命名文件,不用写脚本也能搞定。最常用、最稳妥的三种方式是:rename 命令(Perl 版)、mmv 工具、for 循环配合 mv。选哪个取决于你系统有没有预装、想不想装新工具,以及重命名规则的复杂程度。
用 rename(推荐,功能强又简洁)
多数较新的发行版(如 Ubuntu 22.04+、Debian、Fedora)自带的是 Perl 版 rename,支持正则表达式,一行就能干很多事。
- 把所有
.txt改成.log:rename 's/\.txt$/.log/' *.txt - 把文件名全转小写:
rename 'y/A-Z/a-z/' * - 去掉文件名里的空格并替换成下划线:
rename 's/ /_/g' *
⚠️ 注意:有些老系统(如 CentOS 7)默认装的是 C 版 rename(功能极简),不支持正则。可先运行 rename --version 看输出是否含 “perl”。不是的话,建议用 sudo apt install rename(Deb 系)或 sudo dnf install perl-rename(RHEL/Fedora 系)换掉。
用 mmv(专为批量移动/重命名设计)
mmv 是轻量级专用工具,语法直观,适合模式匹配类重命名,比如 file1.txt → file001.txt 这种编号补零。
- 安装:
sudo apt install mmv(Ubuntu/Debian)或sudo yum install mmv(CentOS 7,需 EPEL) - 把
a1.txt,a2.txt重命名为new1.txt,new2.txt:mmv 'a?.txt' 'new#1.txt' - 把所有
IMG_*.jpg改成photo_*.jpg:mmv 'IMG_*.jpg' 'photo_#1.jpg'
#1 表示匹配第一个通配符的内容,安全、不易误操作,适合习惯 shell 通配符的人。
用 for 循环 + mv(通用、无需额外安装)
所有 Linux 都有 bash 和 mv,这是最“原生”的方式,适合简单替换或加前缀/后缀。
- 给所有 .log 文件加 backup_ 前缀:
for f in *.log; do mv "$f" "backup_$f"; done - 把 foo1, foo2… 重命名为 bar1, bar2…(假设只有数字结尾):
for f in foo[0-9]*; do mv "$f" "${f/foo/bar}"; done - ⚠️ 关键细节:
– 一定要用"$f"加双引号,防文件名含空格出错
– 复杂字符串替换建议先用echo测试,比如echo mv "$f" ...看结果对不对再删 echo 执行
基本上就这些。rename 最灵活,mmv 最专注,for 循环最通用——按需选一个,试两行就上手了。










