rename命令配合正则表达式可高效批量重命名文件。1. 基础用法:使用 rename 's/旧名字模式/新名字/' 文件列表,如将.txt改为.log;2. 去掉前缀:rename 's/^prefix_//' .txt;3. 添加前缀:rename 's/^(.).jpg$/photo_$1.jpg/' .jpg;4. 替换字符:用分组匹配替换如rename 's/v(\d+).(\d+).(\d+)/v$1_$2_$3/' .tar.gz;5. 使用-n预览和-v查看执行过程避免误操作;注意路径、通配符顺序、贪婪匹配及特殊字符转义问题。

在 Linux 系统中,如果你有一堆文件需要重命名,手动一个个改名显然效率太低。虽然 rename 命令很多人听说过,但真正能用正则表达式批量处理文件名的就不多了。这篇文章就来聊聊如何使用 rename 命令配合正则表达式,高效完成批量重命名任务。

Linux 下的 rename 并不是简单的重命名工具,它支持 Perl 兼容的正则表达式,这才是它的强大之处。

基本格式如下:
rename 's/旧名字模式/新名字/' 文件列表
举个简单例子,把所有
.txt
.log

rename 's/\.txt$/\.log/' *.txt
这里
s/.../.../
小提示:有些发行版自带的是 rename.ul,功能有限。推荐安装 Perl 版本的 rename(也叫 prename),功能更全。
比如文件名是
prefix_file1.txt
prefix_
rename 's/^prefix_//' *.txt
^
prefix_
想给所有
.jpg
photo_
rename 's/^(.*).jpg$/photo_$1.jpg/' *.jpg
$1
比如将
v1.0.1-file.tar.gz
v1_0_1-file.tar.gz
rename 's/v(\d+)\.(\d+)\.(\d+)/v$1_$2_$3/' *.tar.gz
\d+
$1
2
rename 默认会直接修改文件名,稍有不慎可能出错。建议先加
-n
rename -n 's/old/new/' *.txt
输出类似:
rename(oldfile.txt, newfile.txt)
确认没问题后再去掉
-n
如果担心误操作,还可以结合
-v
rename -v 's/old/new/' *.txt
这样每一步都会打印出来,方便检查。
*.txt *.bak
s/a/b/
s/a/b/g
.
?
*
\
基本上就这些。掌握这几个常用技巧,日常的批量重命名就能轻松搞定。rename 配合正则表达式看似有点门槛,其实只要记住几个常见模板,用起来非常顺手。
以上就是如何批量重命名Linux文件 rename命令正则表达式实战的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号