linux批量重命名文件是什么-rename 命令使用与实例

linux批量重命名文件是什么-rename 命令使用与实例

linux rename 命令


rename

是 Linux 系统中用于一次性修改多个文件名称的命令行工具。它支持通过正则表达式字符串替换的方式,对大量文件进行快速重命名,适用于需要集中处理文件名的情况。


基本语法

该命令的标准写法如下:

<pre class="brush:php;toolbar:false">rename [参数] '规则' 文件...

参数解释

  • 规则

    :定义文件名修改方式,可以是正则表达式或替换字符串

  • 文件

    :待更名的目标文件集合,可使用通配符(例如

    *.log


常用参数

参数 作用
`-v` 输出执行过程信息(详细模式)
`-n` 仅预览操作结果,不真正执行
`-f` 覆盖已存在的文件
`-h` 查看帮助文档

操作示例

1. 替换扩展名

将当前目录下所有

.html

文件改为

.php

<pre class="brush:php;toolbar:false">rename 's/.html$/.php/' *.html

说明

  • s/

    表示开始替换

  • .html$

    匹配以

    .html

    结尾的文件名(

    $

    表示结尾)

  • /.php/

    表示替换成

    .php

2. 添加前缀

为所有

.txt

文件加上

backup_

前缀:

<pre class="brush:php;toolbar:false">rename 's/^/backup_/' *.txt

3. 清除空格

移除所有文件名中的空格字符:

<pre class="brush:php;toolbar:false">rename 's/ //g' *

注意

g

表示全局替换(替换所有匹配项)

4. 调整大小写

.jpg

后缀统一改成大写格式:

<pre class="brush:php;toolbar:false">rename 's/.jpg$/.JPG/' *.jpg

进阶技巧

1. 使用变量和格式化

<pre class="brush:php;toolbar:false">rename 's/(d+)/sprintf("%03d", $1)/e' *.png

功能:将文件名中的数字部分补零至三位数(如

img1.png

img001.png

2. 按条件重命名

<pre class="brush:php;toolbar:false">rename 'if (/.jpeg$/) { s/.jpeg$/.jpg/ }' *

功能:只对后缀为

.jpeg

的文件进行重命名


注意事项

  1. 提前备份关键数据:建议先用
    -n

    测试效果再正式执行

  2. 正则差异性:不同系统的
    rename

    实现可能略有区别

  3. 特殊字符处理:文件名含特殊符号时需进行转义
  4. 权限控制:确保拥有目标文件的写入权限

替代方法

若系统未安装

rename

工具,可尝试以下方案:

1. 利用

mv

配合循环实现

示例

for file in *.html; do
mv “$file” “${file%.html}.php”
done

2. 安装 perl 版 rename

示例

# ubuntu/debian
sudo apt install rename

# centos/RHEL
sudo yum install prename


总结

rename

是 Linux 中非常实用的批量改名工具,掌握其正则表达式语法能够轻松应对各种复杂的文件名调整任务。建议从基础替换开始学习,逐步提升到复杂应用。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享