游乐游手机版
首页/系统平台/文章详情

Linux批量重命名文件教程:rename与mv命令详解

时间:2026-05-20 14:11
Linux系统批量重命名文件有多种方法。基础方法是使用mv命令配合for循环,适合简单的前缀、后缀修改。C语言版rename命令可进行直接字符串替换。功能更强的Perl版rename支持正则表达式,能实现复杂模式匹配。mmv工具通过通配符映射,适合结构化重命名。无论使用哪种方法,都建议先通过预览模式确认操作,避免误改。

Linux批量重命名:五种高效方法,总有一款适合你

Linux系统如何批量重命名文件?rename和mv命令用法【教程】

在Linux系统日常文件管理中,批量重命名文件是一项高频且关键的操作。手动逐一使用mv命令不仅效率低下,还极易出错。幸运的是,Linux提供了多种成熟高效的解决方案。本文将深入解析五种主流的批量重命名方法,从基础到进阶,全面覆盖不同应用场景,助你大幅提升工作效率。

一、使用mv命令配合循环结构

这是最基础、兼容性最佳的方法,无需依赖任何外部工具,仅通过Shell脚本的for循环和参数扩展功能即可实现。它特别适用于规则简单的重命名任务,例如统一添加前缀、修改后缀或替换固定字符。

操作步骤如下:首先,打开终端并进入目标目录。

若需为目录下所有.txt文件添加“backup_”前缀,可执行以下命令:

for file in *.txt; do mv "$file" "backup_$file"; done

此命令中,for file in *.txt会遍历所有.txt文件,并逐一执行mv操作。

再如,若需将所有.jpg文件的扩展名更改为.png,可使用:

for file in *.jpg; do mv "$file" "${file%.jpg}.png"; done

此处${file%.jpg}为参数扩展,其作用是移除变量$file末尾的.jpg部分。

安全提示: 在执行任何批量操作前,强烈建议使用echo命令进行模拟预览,确保结果符合预期。例如:

for file in *.txt; do echo "mv $file backup_$file"; done

该命令仅打印拟执行的mv命令,而不会实际移动文件。确认无误后,移除echo即可正式执行。

二、使用C语言版本rename命令

若认为编写循环脚本较为繁琐,rename命令或许是更便捷的选择。需注意,Linux系统中存在两个主流的rename命令版本,其用法差异显著。首先介绍常见于CentOS 7等系统的C语言版本。

该版本语法直观:rename 原字符串 新字符串 文件列表。它仅执行简单的字面替换,不支持复杂的正则表达式。

首先,确认您使用的版本:

rename --version

若输出信息包含“util-linux”字样,则表明您使用的是C语言版本。

假设您需要将当前目录下所有以“log”开头的文件中的“log”替换为“history”,可执行:

rename log history log*

又如,若需将一批.jpeg文件的扩展名统一改为.jpg,命令如下:

rename .jpeg .jpg *.jpeg

该版本的特点在于:操作简单直接,但功能相对有限,无法处理复杂的模式匹配。

三、使用Perl版本rename命令

功能更为强大的是Perl版本的rename命令,它在Ubuntu、Debian及其衍生发行版中通常为默认安装。其核心优势在于支持完整的Perl正则表达式,这意味着您可以实现几乎任意复杂的重命名逻辑。

同样,请先确认版本:

rename --version

若显示“Perl Programmers Reference Guide”等相关信息,则表明您可使用此强大工具。

以下是几个典型示例:

需要删除所有.bak备份文件的扩展名?

rename 's/\.bak$//' *.bak

其中s/\.bak$//是一个正则替换表达式,意为将末尾的.bak替换为空字符串。

若需将所有文件名中的“report”一词替换为“review”,可执行:

rename 's/report/review/' *

甚至可以进行大小写转换,例如将所有大写的.JPG扩展名改为小写.jpg

rename 'y/A-Z/a-z/' *.JPG

由此可见,其灵活性远超C语言版本。

四、使用mmv命令进行通配符映射重命名

若您的文件命名本身具有规律性(如包含序列号),那么mmv命令将是理想选择。它通过“通配符”和“位置占位符”实现从源文件名到目标文件名的结构化映射。此工具通常需要单独安装。

在Debian或Ubuntu系统上安装非常简单:

sudo apt install mmv

假设您有一批文件名为file001.txtfile002.txt…,希望将开头的“file”替换为“doc”并保留数字部分,可执行:

mmv 'file#1.txt' 'doc#1.txt'

此处的#1代表通配符*所匹配的第一部分内容。

再看一个稍复杂的例子:若文件命名模式为image-01-small.jpg,希望将其转换为img_01.jpg(即移除“image-”和“-small”,仅保留中间数字并用下划线连接),命令如下:

mmv 'image-#1-#2.jpg' 'img_#1.jpg'

这里#1匹配了“01”,#2匹配了“small”,但在新文件名中我们仅使用了#1

请注意,mmv默认处于安全模式,若重命名操作可能导致文件覆盖,它会报错并中止执行。若您确认需要覆盖,可添加-g参数。

五、使用rename的预览与安全模式

最后,无论您选择C语言版还是Perl版的rename命令,养成“先预览,后执行”的良好习惯至关重要,它能有效避免误操作带来的风险。

最常用的预览参数是-n(或--nono),它仅显示将要执行的操作,而不实际执行:

rename -n 's/old/new/' *.txt

执行后,终端将列出所有计划中的重命名操作,供您最终核对。

若希望在正式执行时查看每一步的详细信息,可使用-v(详细)参数:

rename -v 's/section/chapter/' *.md

这样,每成功修改一个文件,系统都会打印一行确认信息。

对于Perl版rename,还有一个强大的-e选项,允许您直接嵌入Perl代码块。例如,若需将image1.jpgimage2.jpg…等文件的编号统一补零为三位数(如image001.jpg),可执行:

rename -v 's/(\d+)/sprintf("%03d", $1)/e' image?.jpg

此命令会查找文件名中的数字,并使用sprintf函数将其格式化为三位数(不足位时前面补零)。

至此,五种高效的Linux批量重命名方法已介绍完毕。从朴素的Shell循环到支持正则的Perl rename,再到结构化的mmv,每种工具都有其独特的适用场景。下次面对批量重命名任务时,您可以根据具体需求,灵活选择最顺手的“利器”,轻松提升文件管理效率。

来源:https://www.php.cn/faq/2405833.html
上一篇Windows 注册表残留清理教程 批量删除提升系统运行速度 下一篇Win11任务管理器查看显卡功耗 GPU核心实时瓦数监控教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送