百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

如何在 Linux 中重命名文件(mv 和 rename 命令)?

gudong366 2025-07-12 01:21 4 浏览

在Linux中,文件重命名本质上是修改文件或目录的名称,通常涉及更改文件名或移动文件到新路径。mv(move)和rename是两种最常用的命令,各有侧重:

  • mv:Linux的内置命令,用于移动或重命名文件/目录,简单直接,适合单文件操作或基本重命名需求。
  • rename:功能更强大的命令,专为批量重命名设计,支持正则表达式和复杂模式匹配,适合处理大量文件。

接下来,我们将详细探讨这两个命令的用法、选项、实际案例以及注意事项。

mv命令

mv是Linux系统的核心命令之一,集成在coreutils包中,几乎所有Linux发行版默认包含。其基本语法如下:

mv [选项] 源文件 目标文件

常用选项

  • -i:交互模式,覆盖前提示确认。
  • -f:强制覆盖,不提示。
  • -n:不覆盖已存在文件。
  • -u:仅当源文件比目标文件新或目标文件不存在时才覆盖。
  • -v:显示详细操作信息。
  • -b:覆盖前备份目标文件(备份文件以~结尾)。
  • --backup=[METHOD]:自定义备份方式,如--backup=numbered生成编号备份。

mv重命名示例

单个文件重命名

假设有一个文件oldname.txt,需要重命名为newname.txt

mv oldname.txt newname.txt

如果newname.txt已存在,mv会直接覆盖。若需安全操作,可加-i

mv -i oldname.txt newname.txt

移动并重命名

mv不仅能重命名,还能将文件移动到其他目录并改名。例如,将file.txt移动到/tmp并重命名为newfile.txt

mv file.txt /tmp/newfile.txt

批量重命名(结合循环)

虽然mv不直接支持批量重命名,但结合for循环可以实现。例如,将当前目录下所有.txt文件改为.bak

for file in *.txt; do
  mv "$file" "${file%.txt}.bak"
done

这里,${file%.txt}移除文件名的.txt后缀,拼接.bak

备份与覆盖

为避免误覆盖,可使用-b--backup选项。例如:

mv --backup=numbered oldname.txt newname.txt

newname.txt存在,会生成newname.txt.~1~等编号备份文件。

mv命令的优缺点

优点

  • 内置命令,无需额外安装,简单易用。
  • 适合单文件或目录的重命名和移动。
  • 支持交互模式和备份,安全性高。

缺点

  • 不支持复杂模式匹配或正则表达式。
  • 批量重命名需结合脚本,操作稍复杂。

4. 注意事项

  • 路径问题:确保源文件和目标路径存在,否则会报错。
  • 权限检查:重命名或移动需要对源文件和目标目录有写权限。
  • 覆盖风险:不加-i-n可能导致数据丢失,建议养成交互模式习惯。

rename命令

rename命令专为批量重命名设计,支持复杂模式匹配和正则表达式。需要注意的是,Linux中有两个常见版本的rename

  • Perl版renameprenamerename,常见于Debian/Ubuntu):功能强大,支持Perl正则表达式。
  • Util-linux版rename(常见于CentOS/RHEL):功能较简单,适合基本替换。

安装

  • Ubuntu/Debian:sudo apt install rename
  • CentOS/RHEL:sudo yum install renamesudo dnf install rename

Perl版rename基本语法

rename [选项] 's/模式/替换/' 文件

常用选项

  • -n:预览操作(不实际执行)。
  • -v:显示重命名的详细信息。
  • -f:强制覆盖已存在文件。
  • --path:处理完整路径而不仅是文件名。

Util-linux版rename基本语法

rename [选项] 原字符串 新字符串 文件

常用选项

  • -v:显示详细信息。
  • -n:预览操作。
  • -f:强制覆盖。

rename命令示例

Perl版rename

替换文件后缀:将所有.txt文件改为.bak

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

大小写转换:将文件名中的test改为TEST

rename 's/test/TEST/' *.txt

复杂正则替换:将文件名中的数字加1(如file1.txt变为file2.txt):

rename 's/(\d+)/$1+1/e' *.txt

这里的/e表示执行Perl表达式,$1+1对捕获的数字加1。

处理路径:将/var/log下所有.log文件改为.log.bak

rename --path 's/\.log$/.log.bak/' /var/log/*.log

预览操作:先查看重命名效果:

rename -n 's/\.txt$/.bak/' *.txt

Util-linux版rename

简单字符串替换:将文件名中的old替换为new

rename old new *.txt

后缀替换:将.txt改为.bak

rename .txt .bak *.txt

rename命令的优缺点

优点

  • 支持正则表达式,适合复杂批量重命名。
  • 预览功能(-n)降低误操作风险。
  • Perl版功能强大,灵活性极高。

缺点

  • 需额外安装(部分系统无默认)。
  • Perl版学习曲线稍陡,正则表达式需一定基础。
  • 不同版本语法差异可能导致混淆。

4. 注意事项

  • 版本确认:使用rename --version确认是Perl版还是Util-linux版。
  • 正则表达式测试:Perl版操作前用-n预览,避免错误。
  • 权限与路径:确保有写权限,注意路径中的特殊字符。

高级技巧

1. 结合find命令

findmvrename结合可处理复杂目录结构。例如,重命名所有子目录下的.jpg文件为.jpeg

find . -type f -name "*.jpg" -exec rename 's/\.jpg$/.jpeg/' {} \;

2. 脚本实现复杂重命名

假设需要将文件名中的日期格式从YYYYMMDD改为YYYY-MM-DD(如file20230625.txt变为file2023-06-25.txt):

for file in file*.txt; do
  if [[ $file =~ file([0-9]{4})([0-9]{2})([0-9]{2})\.txt ]]; then
    mv "$file" "file${BASH_REMATCH[1]}-${BASH_REMATCH[2]}-${BASH_REMATCH[3]}.txt"
  fi
done

3. 处理特殊字符

文件名包含空格或特殊字符时,需加引号或转义。例如:

mv "file with spaces.txt" "new name.txt"

或使用rename处理带空格的文件名:

rename 's/ /_/g' *.txt

4. 批量添加前缀/后缀

为所有.png文件添加前缀img_

rename 's/^/img_/' *.png

相关推荐

U盘文件被删怎么简单恢复(u盘里的文件被误删了怎么找回)

现在这个社会不是靠关系靠路子,主要还是靠实力。刘强在机关工作,人长得帅气,工作能力又强。唯独一样不好,脾气太大,动不动就发火,因为小事常和同事发生口角。一次他火大的差点把办公桌给掀翻了,领导见他野蛮的...

不小心删除了一些文件?9 个最佳免费硬盘恢复软件

恢复您曾经无意或意外删除的所有文件和数据。您是否曾经错误地删除了一个对您的工作至关重要并导致您丢失所有进度的文件?我们为您提供了一些最好的免费硬盘恢复软件,以帮助您恢复意外删除的文件,以解决您的文件删...

Studio 中文版:数据救援神器,误删 / 分区损坏 / RAID 恢复一键找回

Studio中文版:数据救援神器,误删/分区损坏/RAID恢复一键找回当文件意外删除、分区损坏,或RAID阵列崩溃时,一款可靠的数据恢复工具往往能挽回关键损失。R-Studio中文版...

你值得拥有的11款Linux数据恢复工具

如果你使用的是Linux操作系统,那么你一定想知道一旦硬盘崩溃的话又该如何保存和恢复数据。其实,现在有很多Linux数据恢复工具可以让我们摆脱数据安全的困扰。小编已经为各位准备好了一些最好的Linux...

误删文件内容怎么恢复(误删文件内容怎么恢复回来)

  在日常使用电脑的过程中,误删文件的情况时有发生。无论是由于操作失误还是病毒攻击,误删文件都会给我们带来不小的困扰。幸运的是,随着技术的发展,误删文件恢复已不再是难题。本文将介绍几款国内外知名的误删...

u盘如何恢复删除的文件?推荐5款u盘数据恢复软件!

在日常生活与工作中,U盘作为便捷的数据存储载体,频繁用于传输和保存各类重要文件。然而,误删文件的情况却时有发生,无论是珍贵的照片、重要的工作文档,还是精心制作的视频,一旦删除,都可能带来不小的麻烦。...

怎么恢复删除的数据?5种有效的数据恢复方法汇总!

在数字化办公与生活的时代,电脑里的每一份数据都承载着重要信息。然而,一个误操作就可能导致数据被删除,无论是尚未保存的重要文档,还是珍藏多年的照片,都可能瞬间“消失”。但其实,数据删除并不意味着永久丢...

u盘删除文件怎么找回?5个数据恢复工具汇总,助你巧妙恢复数据!

在日常使用U盘的过程中,误删文件的情况时有发生,重要的工作文档、珍贵的照片视频一旦消失,难免让人焦急万分。别担心,只要选对数据恢复工具,被删除的数据仍有找回的可能。下面就为你汇总5款实用的数据...

Linux下恢复误删文件:思路+实践(linux删除如何恢复)

周五篮球群里有人问误删文件了怎么恢复,得知是ext4文件系统之后我推荐了ext4magic这个工具,然后又有人提到了xfs的话怎么办,正好前几天看到DaveChinner在邮件列表里提到了这个问题,...

苹果放大招!不用虚拟机了,Mac直接跑Linux容器,开发者效率翻倍

苹果这次真给开发者送福利了!今天凌晨(6月10日),苹果在官宣的Containerization框架直接炸了技术圈——Mac现在能原生运行Linux容器镜像了!这可不是虚拟机那种“套娃”方案,而是基...

7 款老牌经典软件,值得收藏(经典老歌软件)

Calibrehttps://calibre-ebook.com/Calibre是一个电脑电子书管理软件。肯定有人说了,电子书还要管理?那当然了。它的功能更强大的让你想象不到,首先它可以导入PDF,...

神仙级的免费开源电子书阅读器,还支持听书功能

神仙级的免费开源电子书阅读器,还支持听书功能,极空间部署『KoodoReader』哈喽小伙伴们好,我是Stark-C~前段时间不是给大家分享的电子书管理工具『TaleBook』嘛~,然后就有粉丝私信...

如何在Ubuntu系统中重置root密码(ubuntu忘记密码重置root密码命令)

很多人有个问题,就是喜欢把密码设置得很长很复杂,结果谁也没防住,却成功防住了自己ヽ(.ˇдˇ;)ノ对于现代人,特别是年轻人,都有过忘记密码的经历吧。在这篇文章中,我们来了解如何在Ubuntu1...

5款功能强大的PDF阅读器,让PDF阅读更轻松

分享5款功能强大的PDF阅读器,拥有丰富的PDF阅读工具,支持PDF文档划线、笔记、标记等操作,让PDF阅读更轻松!1.嗨动PDF编辑器一款实用的PDF处理软件,不仅可以阅读PDF文档,还能直接编辑、...

上班摸鱼利器! 免费好用的电子书阅读器,NAS轻松部署Koodo Reader

哈喽,大家好我是生活爱好者。笔者也是一名小说爱好者,平时用手机用某信读书,会员也开了,在家看体验也不错,但是上班的时候,在工作快速完成之后,想摸个鱼用手机就不太方便啦,作为爱折腾的人,必须要工作认真,...