Linux基本功系列之rename命令实战

article/2025/9/17 4:27:01

在这里插入图片描述

文章目录

  • 一. rename 命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 将当前目录下所有.cfg的文件,替换为.txt结尾
    • 3.2 将所有出现mufeng的部分都替换为mufeng1
    • 3.3 将mufeng0开头都变成mufeng00开头
    • 3.4 rename支持正则表示式
  • 总结

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. rename 命令介绍

rename命令的功能是用于批量修改文件名称。与mv命令一次只能修改一个文件名不同,rename命令能够基于正则表达式对文件名进行批量修改,但要求是把匹配规则准确的描述给系统。
rename命令的参数有三项:
其一是当前文件名中要被修改的字符;
其二是其要被修改为的新字符;
其三是要被执行的对象文件列表

二. 语法格式及常用选项

常用的命令格式:

rename [选项] 表达式 替换文件…rename [options] expression replacement file…

expression 将文件名需要替换的字符串

replacement 将文件名中含有的原字符替换成目标字符串

file 指定要改变文件名的文件列表

我们可以使用 --help查看常用的选项

[root@mufenggrow a]# rename --help用法:rename [选项] 表达式 替换文件...选项:-v, --verbose    解释正在进行的操作-s, --symlink    在符号链接上执行-h, --help     显示此帮助并退出-V, --version  输出版本信息并退出

常用的正则表达式符号说明:

^  匹配输入的开始位置
$ 匹配输入的结尾
.  表示匹配除换行字符外的任意字符
+ 匹配起哪一个字符一次或者多次
[a-z] 匹配a与z之间的任意一个小写字母
[^m-z] 不与指定区域内的字符匹配
? 可替代单个字符
* 可以替代多个字符
[charset] 可替代charset集中的任意单字符

三. 参考案例

3.1 将当前目录下所有.cfg的文件,替换为.txt结尾

创建目录test,在text下创建文件 {1…5}.cfg ,全部替换为 ,txt结尾:
我们来看演示效果:

[root@mufenggrow ~]# mkdir test
[root@mufenggrow ~]# cd test
[root@mufenggrow test]# touch {1..5}.cfg
[root@mufenggrow test]# ll
总用量 0
-rw-r--r--. 1 root root 0 122 20:00 1.cfg
-rw-r--r--. 1 root root 0 122 20:00 2.cfg
-rw-r--r--. 1 root root 0 122 20:00 3.cfg
-rw-r--r--. 1 root root 0 122 20:00 4.cfg
-rw-r--r--. 1 root root 0 122 20:00 5.cfg
[root@mufenggrow test]# rename .cfg .txt *.cfg
[root@mufenggrow test]# ll
总用量 0
-rw-r--r--. 1 root root 0 122 20:00 1.txt
-rw-r--r--. 1 root root 0 122 20:00 2.txt
-rw-r--r--. 1 root root 0 122 20:00 3.txt
-rw-r--r--. 1 root root 0 122 20:00 4.txt
-rw-r--r--. 1 root root 0 122 20:00 5.txt
[root@mufenggrow test]# 

我们用图示来标注下:
在这里插入图片描述

根据上图中的位置,我们再来看一个例子:
接下来我们把1.txt 改为1.doc ,这里和mv是有很多区别的:

[root@mufenggrow test]# ll
总用量 0
-rw-r--r--. 1 root root 0 122 20:00 1.txt
-rw-r--r--. 1 root root 0 122 20:00 2.txt
-rw-r--r--. 1 root root 0 122 20:00 3.txt[root@mufenggrow test]# rename 1.txt 1.doc 1.txt
[root@mufenggrow test]# ll 1.doc 
-rw-r--r--. 1 root root 0 122 20:00 1.doc
[root@mufenggrow test]# 

3.2 将所有出现mufeng的部分都替换为mufeng1

我们先创建mufeng1-5, 然后将mufeng改为mufeng0
以下是代码示例:

[root@mufenggrow test]# touch mufeng{1..5}
[root@mufenggrow test]# ls
mufeng1  mufeng2  mufeng3  mufeng4  mufeng5
[root@mufenggrow test]# rename mufeng mufeng0 mufeng?
[root@mufenggrow test]# ll
总用量 0
-rw-r--r--. 1 root root 0 122 20:14 mufeng01
-rw-r--r--. 1 root root 0 122 20:14 mufeng02
-rw-r--r--. 1 root root 0 122 20:14 mufeng03
-rw-r--r--. 1 root root 0 122 20:14 mufeng04
-rw-r--r--. 1 root root 0 122 20:14 mufeng05

通过代码示例可以看到,所有的用户都变成了mufeng0开头了

3.3 将mufeng0开头都变成mufeng00开头

先查看目前的文件:

[root@mufenggrow test]# ll
总用量 0
-rw-r--r--. 1 root root 0 122 20:14 mufeng01
-rw-r--r--. 1 root root 0 122 20:14 mufeng02
-rw-r--r--. 1 root root 0 122 20:14 mufeng03
-rw-r--r--. 1 root root 0 122 20:14 mufeng04
-rw-r--r--. 1 root root 0 122 20:14 mufeng05

将mufeng0冲命名为mufeng00开头

[root@mufenggrow test]# rename mufeng mufeng0 mufeng*
[root@mufenggrow test]# ll
总用量 0
-rw-r--r--. 1 root root 0 122 20:14 mufeng001
-rw-r--r--. 1 root root 0 122 20:14 mufeng002
-rw-r--r--. 1 root root 0 122 20:14 mufeng003
-rw-r--r--. 1 root root 0 122 20:14 mufeng004
-rw-r--r--. 1 root root 0 122 20:14 mufeng005

原来是mufeng0开头,又加了个0,所以变成了00开头。

3.4 rename支持正则表示式

将mufeng替换为MUfeng
rename的替换,可以使用类似vim文本中的替换,比如 s/mu/MU/

[root@mufenggrow test]# ll
总用量 0
-rw-r--r--. 1 root root 0 122 20:14 mufeng001
-rw-r--r--. 1 root root 0 122 20:14 mufeng002
-rw-r--r--. 1 root root 0 122 20:14 mufeng003
-rw-r--r--. 1 root root 0 122 20:14 mufeng004
-rw-r--r--. 1 root root 0 122 20:14 mufeng005
[root@mufenggrow test]# rename "s/mu/MU/" *
[root@mufenggrow test]# ll
总用量 0
-rw-r--r--. 1 root root 0 122 20:14 mufeng001
-rw-r--r--. 1 root root 0 122 20:14 mufeng002
-rw-r--r--. 1 root root 0 122 20:14 mufeng003
-rw-r--r--. 1 root root 0 122 20:14 mufeng004
-rw-r--r--. 1 root root 0 122 20:14 mufeng005
[root@mufenggrow test]# 

将后缀.txt 全部替换为.php

[root@mufenggrow test]# rename  .txt .php *
[root@mufenggrow test]# ll
总用量 0
-rw-r--r--. 1 root root 0 122 20:23 1.php
-rw-r--r--. 1 root root 0 122 20:23 2.php
-rw-r--r--. 1 root root 0 122 20:23 3.php
-rw-r--r--. 1 root root 0 122 20:23 4.php
-rw-r--r--. 1 root root 0 122 20:23 5.php

总结

以上就是rename命令的使用,涉及到批量改名的时候,我们会用到rename,有时候也可以用shell脚本来实现,各种方法都可以尝试。

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

在这里插入图片描述


http://chatgpt.dhexx.cn/article/WihpkrP2.shtml

相关文章

VS项目rename

Visual Studio c项目更改相关文件名字 项目里面文件夹 Rename 右键 .sln文件, 打开方式–> txt方式打开编辑找到里面project的文件夹名字, Rename. 然后到资源管理器里, 找到对应的folder, Rename. .vcxproj相关文件 Rename 相关文件Rename .sln文件, txt打开–>Ren…

rename 命令 – 批量修改文件名称

rename 命令的功能是用于批量修改文件名称。与 mv 命令一次只能修改一个文件名不同,rename命令能够基于正则表达式对文件名进行批量修改,但要求是把匹配规则准确的描述给系统。 rename 命令的参数有三项:其一是当前文件名中要被修改的字符&am…

linux之rename命令

用字符串替换的方式批量改变文件名 rename 命令存在两个版本用法上有所区别 C语言版本, 支持通配符 [常用通配符说明] ? 表示一个任意字符 * 表示一个或一串任意字符 [charset] 可替代charset集中的任意单个字符Perl版本, 支持正则表达式 [常用正则表达式符号说明] ^…

pandas:案例详解 rename函数 修改列名和行名

pandas:案例详解rename函数 修改列名和索引 rename函数简介0 构建学习数据1 修改索引两种方式2 修改列名两种方式3 是否替换原列表3 pandas 字母转换大小写3 使用axis参数常见问题问题:参数位置错误修改办法: rename函数简介 df.rename(inde…

关于Unity 2020找不到PBR graph的问题,shader graph 10 版本

2020.4以后采用了船新的Shader Graph,变动挺大的。 建议还是换版本或者去官网学习。 PBR是没有了,但是有两个空的Shader 一个是Blank Shader,即空shader,自己进去里面创建PBR(前排提醒,不是简单拖一个PBR nodes&#x…

Substance与PBR工作流总结

关于PBR PBR即基于物理的渲染,是一套尝试基于真实世界光照物理模型的渲染技术合集,使用了一种更符合物理学规律的方式来模拟光线,达到更真实的渲染效果,而且可以直接通过物理参数来直观地达到想要的结果,不用通过拙劣的…

BPR算法

目录 什么是BPR算法 BPR算法简介 显示反馈与隐式反馈 矩阵分解的不足 BPR算法 符号定义 BPR算法解决方式 BPR算法两个基本假设 BPR算法推导 贝叶斯定理 BPR推导 BPR算法流程 BPR算法代码与结果 数据 BPR算法代码 BPR结果展示 什么是BPR算法 BPR算法简介 BPR&…

基于物理的渲染技术(PBR)系列一

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术…

[引擎开发] PBR材质的原理

[本文大纲] 基础概念篇 引入 光线与介质的作用 光线的传播路径 体积散射和表面光照 光线和介质外观 微平面理论 概念介绍 中间向量 能量守恒定律 微平面理论的不足 光照计算 半球积分 …

PBR材质基础概念,限制及未来发展

最近几年图形学社区对PBR的关注非常高,也许是由于Disney以及一些游戏引擎大厂的助推,也许是因为它可以被轻松集成进实时渲染的游戏引擎当中,也许是因为许多人发现现在只需要调几个参数就能实现具有非常精细细节的表面着色了。反正现在网络上随…

PBR渲染(一)——PBR理论基础

PBR基础框架 PBR理论基础PBR基础框架 1.PBR理论基础 BSDF(双向散射表面分布函数) 对于一般的基于物理的表面材质来说,使用第一项BSSRDF双向散射表面反射分布函数,其简化后的重点就是BRDF双向反射率分布函数,忽略了复…

Unity ShaderGraph没有PBR Graph的解决方法

1.创建光照Shader Graph 2.打开Shader Graph界面 Fragment选项卡上右击——Add Block Note——添加Alpha和Alpha Clip Threshold两个属性 可以看到此时这两个属性是灰色的,并不生效,是因为未启用Alpha Clipping 3.Graph Inspector选项卡中,勾…

在3ds max中,什么是PBR材质?

PBR是Physically-Based Rendering(基于物理的渲染)的简称。 PBR材质是一种基于物理的渲染材质,可提供灯光与曲面交互方式的精确表示。注: 仅当活动渲染器支持时,该材质才会显示在“材质/贴图浏览器”中。 在3ds max中PBR材质分为…

理解PBR:从原理到实现(上)

PBR 从离线渲染进入游戏引擎 CSDN 博客的公式排版有问题,可以看我的 GitHub Page:https://neil3d.github.io/unreal/pbr-theory.html 基于物理的渲染,即 PBR,Physically Based Rendering,这个技术名词最早是有马特法尔…

什么是PBR

PBR就是基于物理的渲染。 首先得介绍光照模型。光照模型是一种数学模型,也就是一种算法。这些算法用于计算机模拟物体在光照下的表现,具体就是 计算物体某一点处的光强。 这些模型从理论而言分为两类。 基于物理理论的和 基于感知经验的。 PBR就是基于…

BPR

BPB模型概念 BPR(Bayesian Personalized Ranking)推荐模型是基于贝叶斯后验优化的个性化排序算法。从user-iem矩阵训练出多个矩阵,而且一个矩阵表示一个用户的item偏好情况来获得用对多个item的偏好关系的推荐系统。本身不优化用户对物品的评分,只是借由…

两种不同的PBR工作流介绍

本文介绍两种常用的PBR材质工作流:金属/粗糙度工作流(Metal/Roughness)和镜面反射/光泽度工作流(Specular/Glossiness)。这两种工作流都可以用来制作一个支持PBR的材质,并用PBR渲染出逼真的效果&#xff0c…

4.3 PBR

1. 实验目的 熟悉PBR的应用场景掌握PBR的配置方法2. 实验拓扑 PBR实验拓扑如图4-8所示: 图4-8:PBR 3. 实验步骤 (1) IP地址的配置 R1的配置 <Huawei>system-view

PBR渲染(二)——PBR皮肤渲染

PBR皮肤渲染 在PBR基础框架的基础上实现皮肤的渲染&#xff0c;要根据皮肤的渲染特性来对基础框架进行扩充和修改&#xff0c;从而实现真实感的PBR皮肤渲染。皮肤一般具有以下渲染特性&#xff1a; 1.次表面散射&#xff08;SSS&#xff09; 2.BRDF高光&#xff08;Specular …

PBR 基础知识干货总结

&#xff08;1&#xff09;什么是PBR&#xff1f; 基于物理的渲染过程。 PBR是一种着色和渲染技术&#xff0c;用于更精确的描述光如何与物体表面互动。 PBR的优势&#xff1a; &#xff08;1&#xff09;方法论和算法基于精确的计算公式&#xff0c;免除创作表面的猜想过程。 …