Linux系统之rename命令的基本使用

Linux系统之rename命令的基本使用

  • 一、rename命令介绍
  • 二、raname工具版本
    • 2.1 C语言版本
    • 2.2 Perl版本
  • 三、centos下的rename使用
    • 3.1 基本语法
    • 3.2 命令选项
    • 3.3 rename的基本使用
  • 四、ubuntu下的rename使用
    • 4.1 基本语法
    • 4.2 命令选项
    • 4.3 rename命令的基本操作
  • 五、rename注意事项

在这里插入图片描述

一、rename命令介绍

rename命令是在Linux和Unix系统中使用的一个命令,用于批量重命名文件或目录。

二、raname工具版本

2.1 C语言版本

C语言版本, 支持通配符, Centos(7)默认的是C语言版本,如果返回结果中包含 util-linux , 说明是C语言版本, 反之是Perl版本。

[root@jeven ~]# rename --version
rename from util-linux 2.23.2

[常用通配符说明]

  • ? 表示一个任意字符
    • 表示一个或一串任意字符

2.2 Perl版本

Perl版本, 支持正则表达式,Ubuntu(18),Mint(20)默认的是Perl版本。

root@ubuntu-server001:~# rename --version
/usr/bin/rename using File::Rename version 1.30, File::Rename::Options version 1.10

[常用正则表达式符号说明]

  • ^ 匹配输入的开始位置
  • $ 匹配输入的结尾
  • . 匹配除换行符外的任意字符
  • “+” 匹配前一个字符一次或多次 例如,“zo+“可以匹配"zoo”,但不匹配"z”
  • [a-z] 表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
  • [^m-z] 否定的字符区间。与不在指定区间内的字符匹配。

三、centos下的rename使用

3.1 基本语法

rename [选项] 表达式 替换的字符 文件...

3.2 命令选项

以下是rename命令的help帮助信息

[root@jeven ~]# rename --helpUsage:rename [options] expression replacement file...Options:-v, --verbose    explain what is being done-s, --symlink    act on symlink target-h, --help     display this help and exit-V, --version  output version information and exitFor more details see rename(1).

下面是rename命令的常用选项

-v, --verbose : 显示详细的操作信息 
-s, --symlink : 对符号链接目标进行操作
-h, --help : 显示帮助信息并退出 
-V, --version : 显示版本信息并退出

3.3 rename的基本使用

原测试目录下,我们创建三个测试文件。

[root@jeven test]# ls
aa.txt  bb.txt  cc.txt

将三个文件的后缀批量修改为pdf

[root@jeven test]# rename -v   txt pdf aa.txt bb.txt cc.txt
`aa.txt' -> `aa.pdf'
`bb.txt' -> `bb.pdf'
`cc.txt' -> `cc.pdf'

创建多个测试文件

 touch file0{1..999}

将file01-file09,修改为afile01-afile09。

[root@jeven test]# rename -v file afile file0?
`file01' -> `afile01'
`file02' -> `afile02'
`file03' -> `afile03'
`file04' -> `afile04'
`file05' -> `afile05'
`file06' -> `afile06'
`file07' -> `afile07'
`file08' -> `afile08'
`file09' -> `afile09'

目录中有file1.txt、file2.txt、file3.txt文件,要将所有文件名中的"file"替换为"doc"。

[root@jeven test]# ls
file1.txt  file2.txt  file3.txt
[root@jeven test]# rename -v 'file' 'doc' *.txt
`file1.txt' -> `doc1.txt'
`file2.txt' -> `doc2.txt'
`file3.txt' -> `doc3.txt'

四、ubuntu下的rename使用

4.1 基本语法

ubuntu下rename命令的基本语法

rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ] [ -e|-E perlexpr]*|perlexpr [ files ]

4.2 命令选项

下面是rename命令的常用选项

-v, --verbose:打印成功重命名的文件名。-0, --null:从标准输入读取时使用\0作为记录分隔符。-n, --nono:不执行实际的重命名操作,只打印要被重命名的文件名。-f, --force:覆盖已存在的文件。--path, --fullpath:重命名包括目录组件在内的完整路径,默认选项。-d, --filename, --nopath, --nofullpath:只重命名文件名部分,不包括目录。-h, --help:打印帮助信息。-m, --man:打印手册页。-V, --version:显示版本号。-u, --unicode [encoding]:将文件名视为Perl(Unicode)字符串,运行用户提供的代码。使用encoding对文件名进行解码/编码,如果存在的话。encoding是可选的:如果省略,则下一个参数应该是以'-'开头的选项,例如-e。-e:表达式:对文件名执行操作的代码。可以重复使用来构建代码(类似于 "perl -e")。如果没有-e,第一个参数将被用作代码。-E:语句:与-e相同,但以';'结尾的代码。

4.3 rename命令的基本操作

创建本地测试文件

root@ubuntu-server001:~/test# touch  file{1..5}.txt
root@ubuntu-server001:~/test# ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt

将所有文件的后缀名改为pdf

root@ubuntu-server001:~/test# rename -v "s/txt/pdf/g" file{1..5}.txt
file1.txt renamed as file1.pdf
file2.txt renamed as file2.pdf
file3.txt renamed as file3.pdf
file4.txt renamed as file4.pdf
file5.txt renamed as file5.pdf

批量添加所有文件后缀为.a

root@ubuntu-server001:~/test# rename -v "s/$/.a/" *
file1.pdf renamed as file1.pdf.a
file2.pdf renamed as file2.pdf.a
file3.pdf renamed as file3.pdf.a
file4.pdf renamed as file4.pdf.a
file5.pdf renamed as file5.pdf.a

将所有文件的后缀名.a去掉

root@ubuntu-server001:~/test# rename -v "s/.a//" *
file1.pdf.a renamed as file1.pdf
file2.pdf.a renamed as file2.pdf
file3.pdf.a renamed as file3.pdf
file4.pdf.a renamed as file4.pdf
file5.pdf.a renamed as file5.pdf

五、rename注意事项

  • 检查rename版本:rename --version,如果返回结果中包含 util-linux , 说明是C语言版本, 反之是Perl版本,两个版本用法上有所区别。

  • 检查文件名:在执行rename命令之前,仔细检查要重命名的文件名。确保文件名正确无误,以免重命名错误。

  • 使用通配符:rename命令可以使用通配符来批量重命名文件。在使用通配符时,要确保通配符能够正确匹配到需要重命名的文件。

  • 了解重命名规则:rename命令支持多种重命名规则,如替换文件名中的字符、删除文件名中的字符等。在使用rename命令之前,了解重命名规则的使用方法和效果。

  • 备份重要文件:在重命名文件之前,建议先备份重要文件。这样即使重命名出现错误,也可以恢复到原始的文件名。

  • 注意文件路径:在使用rename命令时,要确保当前路径下包含要重命名的文件。如果要重命名的文件位于其他路径,需要在命令中指定完整的文件路径。

  • 使用正确的权限:在使用rename命令时,要注意当前用户是否具有对文件的重命名权限。如果没有权限,可以尝试使用sudo命令来以管理员身份执行rename命令。

  • 谨慎操作:在使用rename命令时,要谨慎操作,避免误操作导致文件丢失或损坏。在执行rename命令之前,最好先测试一下命令的效果,确保能够正确完成重命名操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/725246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“色狼”用英语怎么说?柯桥日常英语,成人英语口语学习

最近有粉丝问我"色狼"英文翻译是啥 首先声明不是"colour wolf"哈 关于“色狼”的英文表达有很多 快和C姐一起来看看吧! 1.pervert 这个单词的意思是变态、色狼 是对性变态者最直观的描述 He is such a pervert! I saw him lo…

学习基于 JavaScript 语言 的计算机界三大神书”之一 ——SICP

如何阅读“计算机界三大神书”之一 ——SICP 《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,简记为SICP)是MIT的基础课教材,出版后引起计算机教育界的广泛关注,对推动全世界大学计算…

微前端之什么是微前端

什么是微前端 微前端分类 基于路由的微前端:组件化微前端:iframe嵌入式微前端: 优点缺点 动态加载/懒加载微前端:微应用容器化方案: 微前端解决方案 single-spa阿里巴巴 Cloud Alfaiframe 方案Web ComponentsModule Fe…

关于Mybatis-Plus报错 Not Found TableInfoCache 解决办法

0. 接口结构&#xff1a;1. 方法报错&#xff1a;2. 解决方法&#xff1a;3. 原因分析&#xff1a; 0. 接口结构&#xff1a; 【接口】&#xff1a; public interface PurchaseOrderService extends IService<PurchaseOrder> {}【接口实现类】&#xff1a; public cla…

【Python】新手入门(5):# -*- coding: UTF-8 -*- 的作用详解

【Python】新手入门&#xff08;5&#xff09;&#xff1a;# -*- coding: UTF-8 -*- 的作用详解 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础…

ssm基于javaEE+springboot校园闲置二手物品拍卖交易平台_ngad7

为提升浏览用户观感及使用体验&#xff0c;本系统要具有易用性和美观性。通过页面的简单提示就可完成操作&#xff0c;校园闲置物品交易平台展示界面应该清楚简洁&#xff0c;使用户通过美观的前台页面能快速定位想要浏览的校园闲置物品交易平台信息。后台界面也应简约&#xf…

java岗位面试题总结,关于网络优化你必须要知道的重点

前言 最近有很多朋友向我求教经验&#xff0c;因为我自己工作相对于稳定&#xff0c;在这里给大家分享一个粉丝朋友的经历&#xff0c;他作为一个曾经的菜鸡面试者&#xff0c;在不断的失败中成长&#xff0c;最终斩获了多份offer&#xff0c;因此特别想在此分享一下他的面试成…

【C++精简版回顾】20.模板的使用

1.模板起源 1.模板的定义 1.针对函数属性模板 //针对函数属性 template <class VOID > VOID print1(int a) {cout << a << endl; } 2.针对数据属性模板 //针对数据属性 template <typename INT,typename FLOAT> void print2(INT a,FLOAT b) {cout <…

从零学习Linux操作系统 第三十部分 部署Anisble

一、ansible实验环境的部署 主控机 更改服务器主机名 hostnamectl set-hostname westos_ansible.westos.org 主服务器需要能够实现上网 修改网卡使之能够上网 能ping通 代表可以连接外网 搭载本地软件仓库 并且挂载镜像 装载 dnf install httpd -y 让其开机启动并且…

【C#面向对象设计模式】02. Singleton单件(创建型模式)

【C#面向对象设计模式】02. Singleton单件&#xff08;创建型模式&#xff09; 0. 模式分类 从目的来看&#xff1a; 创建型模式&#xff1a;负责对象创建。结构型模式&#xff1a;处理类与对象间的组合。行为型模式&#xff1a;类与对象交互中的职责分配。 从范围来看&#…

.kat6.l6st6r勒索病毒的最新威胁:如何恢复您的数据?

导言&#xff1a; 在当今数字化时代&#xff0c;数据安全变得至关重要。然而&#xff0c;随着网络威胁不断增加&#xff0c;勒索病毒已成为企业和个人面临的严重威胁之一。其中&#xff0c;.kat6.l6st6r勒索病毒是最新的变种之一&#xff0c;它能够加密您的数据文件&#xff0…

解密程序员的“藏宝图”:我的祖传代码大公开

程序员是如何看待“祖传代码”的&#xff1f; 大家好&#xff0c;我是小明&#xff0c;一位充满好奇心和分享热情的程序员。今天&#xff0c;我要为大家揭开我心中的“藏宝图”——那些我认为值得传世的祖传代码。让我们一同踏上这场奇妙的代码冒险之旅吧&#xff01; 宝物一…

vue-路由跳转和路由传参!!!

需求&#xff1a;在修改商品时&#xff0c;会进行页面跳转&#xff0c;通过点击修改按钮进行页面跳转。这时我们需要将商品的id携带过去 一、首先我们在查询页面实现路由跳转并携带参数。 1.1、修改按钮 <el-button type"primary" size"small" click&qu…

体验Node.js的安装和运行

Node.js概述 Node.js是一个基于Chrome V8引擎的JavaScript运行环境。它允许JavaScript代码在服务器端运行&#xff0c;使得开发人员可以使用同一种语言编写前端和后端的代码。Node.js使用事件驱动、非阻塞I/O模型&#xff0c;使其轻量且高效&#xff0c;非常适合数据密集型的实…

Leetcode : 506. 相对名次

思路 &#xff1a; 遍历计算每个元素比它大的元素个数&#xff0c;并判断做出对应结果标签&#xff1b; #include <iostream> #include <vector>using namespace std;class Solution { public:vector<string> findRelativeRanks(vector<int>& scor…

短剧系统开发:一种新型的娱乐方式

一、引言 随着科技的快速发展&#xff0c;人们的生活方式也在逐渐改变。在娱乐领域&#xff0c;短剧作为一种新型的娱乐方式&#xff0c;正在受到越来越多人的喜爱。短剧以其短小精悍、情节紧凑、易于观看等特点&#xff0c;迅速占领了市场。因此&#xff0c;开发一款短剧系统…

【自然语言处理】【大模型】BitNet:用1-bit Transformer训练LLM

BitNet&#xff1a;用1-bit Transformer训练LLM 《BitNet: Scaling 1-bit Transformers for Large Language Models》 论文地址&#xff1a;https://arxiv.org/pdf/2310.11453.pdf 相关博客 【自然语言处理】【大模型】BitNet&#xff1a;用1-bit Transformer训练LLM 【自然语言…

coqui-ai/TTS 安装使用

Coqui AI的TTS是一款开源深度学习文本转语音工具&#xff0c;以高质量、多语言合成著称。它提供超过1100种语言的预训练模型库&#xff0c;能够轻松集成到各种应用中&#xff0c;并允许用户通过简单API进行个性化声音训练与微调。其技术亮点包括但不限于低资源适应性&#xff0…

RabbitMQ是如何保证高可用的?

RabbitMQ可以通过多种方式来实现高可用性&#xff0c;以确保在硬件故障或其他不可预测的情况下&#xff0c;消息队列系统仍然能够正常 运行。RabbitMQ有三种模式&#xff1a;单机模式&#xff0c;普通集群模式&#xff0c;镜像集群模式。 其中单机模式一般用于demo搭建&#x…

STM32CubeMX学习笔记14 ---SPI总线

1. 简介 1.1 SPI总线介绍 SPI 是英语Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接口。是Motorola(摩托罗拉)首先在其MC68HCXX系列处理器上定义的。 SPI&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且在…