0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux操作系统:三种最基本的文件重命名方法

如意 来源:良许Linux微信公众号 作者:良许 2020-09-11 14:48 次阅读

在我们的工作生活中,不管是程序员还是非程序员,我们都会遇到过一个需求,那就是对一堆的文件进行重命名。在Windows下有很多优秀的软件可以帮助我们完成这个需求,而在Linux环境下,我们可以简单敲一些代码就可以完成这个需求。

本文良许将介绍三种最基本的文件重命名方法,因为比较基本,所以老司机可以到此为止。

1. rename命令

顾名思义,rename命令就是用来进行重命名文件名的。rename命令有非常强大的功能,我们可以用它来实现各种各样复杂的文件名的修改。但是,本文只介绍它最最基本的功能,后期再更新rename其它强大的重命名功能。rename的最基本的格式如下:

rename 源字符串 目标字符串 文件

其中,源字符串表示原文件名需要替换的字符串,可以是原文件名的全部或部分;目标字符串就是想要替换成的字符串;文件就是需要更改文件名的文件列表,可以是一个或多个。

现假如目录下有一堆 atb_mod_01.cpp,atb_mod_02.cpp,atb_mod_03.cpp,atb_mod_04.cpp 等形式的文件,我们的需求是将文件名中的 mod 改成 adb,那么完成这个需求的命令如下:

[alvin@VM_0_16_centos exp3]$ ls

atb_mod_01.cpp atb_mod_02.cpp atb_mod_03.cpp atb_mod_04.cpp[alvin@VM_0_16_centos exp3]$ rename mod adb *[alvin@VM_0_16_centos exp3]$ lsatb_adb_01.cpp atb_adb_02.cpp atb_adb_03.cpp atb_adb_04.cpp

2. mv命令配合for循环方式

假如我们现在有一堆 .txt 文件,我们想将它们的后缀改成 .cpp。先来看完整的代码:

Linux操作系统:三种最基本的文件重命名方法

我们都知道,在Linux里重命名是用 mv 命令,那批量重命名自然会想到用循环语句嵌套mv命令。

在这里,我们用 ls *.txt 将当前目录下所有的txt文件全部列出来,然后逐个放在name变量里去循环操作。

在循环体里,我们使用mv命令进行重命名。这里我们使用 ${name%.txt} 这种字符串处理方式,表示从name尾部开始删除与 .txt 匹配的最小部分,并返回剩余部分。之后,再加上 .cpp 后缀。通过这种操作,我们就可以将文件名后缀从.txt改为.cpp。最后我们用mv命令将这个文件名真正改过来。

3. sed命令配合for循环方式

假如我们现在有一堆文件,文件名格式是 test01.txt,test02.txt,test03.txt,test04.txt 也就是前半部分是英文,后半部分是数字。我们现在想将文件名改成 test-01.txt 这种形式。这次,我们用sed命令来完成这个需求。

我们还是先来看看完整的代码。

Linux操作系统:三种最基本的文件重命名方法

前面一样用 ls \*.txt 来获取所有的 .txt 文件。之后再用echo命令将其顺次输出,作为sed命令的输入。

接下来,到达关键部分了。乍一看sed的命令可能有点可怕,但老司机早已习以为常了。反引号里的内容其实是这样的基本结构:

s/ 原字符串 / 替代的字符串 /

这里我们用到了分组匹配,也就是用括号按照一定的正则表达式将原字符串进行分组,后面再用 \1,\2,\3…… 来引用前面的分组,从而在替代的字符串里拼凑成相应的格式。

前文已讲述,原文件名是由前部分英文及后部分数字所构成的,英文可以用 [a-z]+ 表示,数字可以用 [0-9]+ 表示。注意不要忘记加号,表示前面字符的若干重复。然后,我们用\1、\2分别引用前面的对应部分,再用横杆连起来,于是就成了这样:

s/([a-z]+)([0-9]+)/\1-\2/

因为在不同的Shell里,括号及加号可能会有不同的含义,所以前面要再加一个转义符,于是就成了前面所见到的样子。

再之后,同样使用mv命令完成重命名动作。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206744
  • 操作系统
    +关注

    关注

    37

    文章

    6290

    浏览量

    121901
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
收藏 人收藏

    评论

    相关推荐

    Linux操作系统下常见文件类型分析

    Linux操作系统下常见文件类型分析,压缩和打包文件,普通文件格式,系统
    发表于 01-06 17:00 936次阅读

    嵌入式开发中三种操作系统的分析与比较

    三种常用的嵌入式操作系统——Palm OS、Windows CE、Linux;在此基础上、分析、比较这三种嵌入式操作系统,给出它们之间的异同
    发表于 10-15 14:42

    CyWDR文件也需要重命名吗?

    我想克隆一个项目,作为一个非常类似的项目的开始(稍后为相同代码的新版本)使用。是“将工作区/项目归档”到新文件夹并解压缩它的推荐方法。然后打开被复制和右击的项目并“重命名”主项目?关于“CyWDR
    发表于 08-15 14:02

    嵌入式开发中三种操作系统对比分析哪个好

    三种常用的嵌入式操作系统——Palm OS、Windows CE、Linux;在此基础上、分析、比较这三种嵌入式操作系统,给出它们之间的异同
    发表于 12-20 06:24

    三种常用的嵌入式操作系统是什么

    三种常用的嵌入式操作系统——Palm OS、Windows CE、Linux;在此基础上、分析、比较这三种嵌入式操作系统,给出它们之间的异同
    发表于 12-22 07:36

    Linux操作系统安装与使用方法

    嵌入式网络编程+嵌入式Linux系统Linux操作系统安装与使用(命令)Linux开发工具(gcc、gdb、make)
    发表于 12-23 06:57

    Linux操作系统

    linux的教学内容1 、Linux概述 2 、Linux操作系统安装3、 Linux的内核 4 、Li
    发表于 04-10 16:54 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>

    LABVIEW中文件重命名的几种方法——陈树学《labview宝典》

    解决重命名方法,下面演示一种比较简单的方法,实际也是移动文件的方式。 五、原始方法从本质上说,拷贝一个
    发表于 01-03 16:35 4286次阅读
    LABVIEW中<b class='flag-5'>文件</b><b class='flag-5'>重命名</b>的几种<b class='flag-5'>方法</b>——陈树学《labview宝典》

    Linux上使用简单的cp和mv命令来复制和重命名文件

    有个非常有用的例子。假设你想重新命名一个目录中的文件,将所有的大写字母替换为小写字母。一般来说,你在 Unix 或 Linux 系统上找不到大量大写字母的
    的头像 发表于 06-25 14:02 8201次阅读

    基于linux的十大操作系统排名

    基于linux内核开源的特性,并随着linux的不断发展,各种基于Linux操作系统版本也在不断发行出来,其中每一个不同版本的Linux
    发表于 07-10 16:23 1.5w次阅读

    如何使用python给所有文件重命名

    本文档的主要内容详细介绍的是如何使用python给所有文件重命名资料免费下载。
    发表于 09-22 17:09 2次下载
    如何使用python给所有<b class='flag-5'>文件</b>夹<b class='flag-5'>重命名</b>

    Linux操作系统修改内核参数的三种方法详细说明

    linux内核的参数设置怎么弄呢,Linux 操作系统修改内核参数有以下三种方式:
    发表于 10-06 18:03 1w次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>修改内核参数的<b class='flag-5'>三种方法</b>详细说明

    LINUX操作系统的安装与Linux常用文件命令

    LINUX操作系统的安装与Linux常用文件命令说明。
    发表于 06-02 17:45 2次下载

    Linux rename命令重命名多个文件与目录

    使用`mv`命令重命名多个文件和目录可能是一个乏味的过程,因为它涉及使用管道,循环等编写复杂的命令。
    的头像 发表于 12-09 17:41 2677次阅读

    如何使用mv和rename命令重命名文件

    重命名文件和目录是您经常需要在Linux系统上执行的最基本任务之一。重命名单个
    的头像 发表于 01-17 17:43 7046次阅读