00. 目录

文章目录

  • 00. 目录
  • 01. 命令概述
  • 02. 命令格式
  • 03. 常用选项
  • 04. 参考示例
  • 05. 附录

01. 命令概述

rename命令用字符串替换的方式批量改变文件名。

rename 用于 对文件进行命名管理,可进行批量命名并支持正则表达式, rename命令存在两个版本用法上有所区别 一个是 C语言版本支持通配符,另一个是 Perl版本.支持正则表达式

02. 命令格式

rename [选项] 表达式 替换文件…

rename [options] expression replacement file…

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

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

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

03. 常用选项

 -v, --verbose    解释正在进行的操作-s, --symlink    在符号链接上执行-h, --help     显示此帮助并退出-V, --version  输出版本信息并退出【常用通配符说明】?    表示一个任意字符*    表示一个或一串任意字符
-------------------------------------------------
【常用正则表达式符号说明】
^    匹配输入的开始位置
$    匹配输入的结尾
.    匹配除换行符外的任意字符
+    匹配前一个字符一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z"
[a-z]    表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
[^m-z]    否定的字符区间。与不在指定区间内的字符匹配。

04. 参考示例

rename支持通配符

?  可替代单个字符
*  可替代多个字符
[charset]  可替代charset集中的任意单个字符

4.1 将当前目录下所有.txt文件中的.txt替换成.doc

[deng@localhost test]$ ls
10.txt  1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt  8.txt  9.txt
[deng@localhost test]$ rename .txt .doc *.txt
[deng@localhost test]$ ls
10.doc  1.doc  2.doc  3.doc  4.doc  5.doc  6.doc  7.doc  8.doc  9.doc
[deng@localhost test]$

4.2 将main1.c重命名为main.c

[deng@localhost test]$ touch main1.c
[deng@localhost test]$ rename main1.c main.c main1.c
[deng@localhost test]$ ls
main.c
[deng@localhost test]$

4.3 将foo?所有出现foo的部分替换成foo0

如果使用rename foo foo0 foo?,会把foo1到foo9的文件重命名为foo01到foo09,重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。

[deng@localhost test]$ ls foo?
foo1  foo2  foo3  foo4  foo5  foo6  foo7  foo8  foo9
[deng@localhost test]$ rename foo foo0 foo?
[deng@localhost test]$ ls foo0?
foo01  foo02  foo03  foo04  foo05  foo06  foo07  foo08  foo09
[deng@localhost test]$

4.4 rename foo foo0 foo??

如果使用rename foo foo0 foo??,foo01到foo99的所有文件都被重命名为foo001到foo099,只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。

[deng@localhost test]$ ls foo??
foo01  foo10  foo19  foo28  foo37  foo46  foo55  foo64  foo73  foo82  foo91
foo02  foo11  foo20  foo29  foo38  foo47  foo56  foo65  foo74  foo83  foo92
foo03  foo12  foo21  foo30  foo39  foo48  foo57  foo66  foo75  foo84  foo93
foo04  foo13  foo22  foo31  foo40  foo49  foo58  foo67  foo76  foo85  foo94
foo05  foo14  foo23  foo32  foo41  foo50  foo59  foo68  foo77  foo86  foo95
foo06  foo15  foo24  foo33  foo42  foo51  foo60  foo69  foo78  foo87  foo96
foo07  foo16  foo25  foo34  foo43  foo52  foo61  foo70  foo79  foo88  foo97
foo08  foo17  foo26  foo35  foo44  foo53  foo62  foo71  foo80  foo89  foo98
foo09  foo18  foo27  foo36  foo45  foo54  foo63  foo72  foo81  foo90  foo99
[deng@localhost test]$ rename foo foo0 foo??
[deng@localhost test]$ ls foo0??
foo001  foo012  foo023  foo034  foo045  foo056  foo067  foo078  foo089
foo002  foo013  foo024  foo035  foo046  foo057  foo068  foo079  foo090
foo003  foo014  foo025  foo036  foo047  foo058  foo069  foo080  foo091
foo004  foo015  foo026  foo037  foo048  foo059  foo070  foo081  foo092
foo005  foo016  foo027  foo038  foo049  foo060  foo071  foo082  foo093
foo006  foo017  foo028  foo039  foo050  foo061  foo072  foo083  foo094
foo007  foo018  foo029  foo040  foo051  foo062  foo073  foo084  foo095
foo008  foo019  foo030  foo041  foo052  foo063  foo074  foo085  foo096
foo009  foo020  foo031  foo042  foo053  foo064  foo075  foo086  foo097
foo010  foo021  foo032  foo043  foo054  foo065  foo076  foo087  foo098
foo011  foo022  foo033  foo044  foo055  foo066  foo077  foo088  foo099
[deng@localhost test]$

4.5 rename foo foo0 foo*

如果使用rename foo foo0 foo*,foo001到foo100的所有文件都被重命名为foo0001到foo0100,所有以foo开头的文件都被重命名。

[deng@localhost test]$ rename foo foo0 foo*
[deng@localhost test]$ ls
foo0001  foo0014  foo0027  foo0040  foo0053  foo0066  foo0079  foo0092
foo0002  foo0015  foo0028  foo0041  foo0054  foo0067  foo0080  foo0093
foo0003  foo0016  foo0029  foo0042  foo0055  foo0068  foo0081  foo0094
foo0004  foo0017  foo0030  foo0043  foo0056  foo0069  foo0082  foo0095
foo0005  foo0018  foo0031  foo0044  foo0057  foo0070  foo0083  foo0096
foo0006  foo0019  foo0032  foo0045  foo0058  foo0071  foo0084  foo0097
foo0007  foo0020  foo0033  foo0046  foo0059  foo0072  foo0085  foo0098
foo0008  foo0021  foo0034  foo0047  foo0060  foo0073  foo0086  foo0099
foo0009  foo0022  foo0035  foo0048  foo0061  foo0074  foo0087  foo0100
foo0010  foo0023  foo0036  foo0049  foo0062  foo0075  foo0088  main.c
foo0011  foo0024  foo0037  foo0050  foo0063  foo0076  foo0089
foo0012  foo0025  foo0038  foo0051  foo0064  foo0077  foo0090
foo0013  foo0026  foo0039  foo0052  foo0065  foo0078  foo0091
[deng@localhost test]$

4.6 rename foo foo0 foo[1-9]*

如果使用rename foo foo0 foo[1-9]*,从foo1到foo9的所有文件都被重命名为foo01到foo09,文件名中的foo被替换为foo0。

[deng@localhost test]$ ls
foo1  foo10  foo2  foo3  foo4  foo5  foo6  foo7  foo8  foo9
[deng@localhost test]$ rename foo foo0 foo[1-9]*
[deng@localhost test]$ ls
foo01  foo010  foo02  foo03  foo04  foo05  foo06  foo07  foo08  foo09
[deng@localhost test]$

rename支持正则表达式

4.7 字母的替换

rename "s/AA/aa/" *  //把文件名中的AA替换成aa

4.8 修改文件的后缀

rename "s//.html//.php/" *     //把.html 后缀的改成 .php后缀

4.9 批量添加文件后缀

rename "s/$//.txt/" *     //把所有的文件名都以txt结尾

4.10 批量删除文件名

rename "s//.txt//" *      //把所有以.txt结尾的文件名的.txt删掉

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

参考 Perl版本:https://www.cnblogs.com/amosli/p/3491649.html

【Linux】一步一步学Linux——rename命令(36)相关推荐

  1. 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么

    Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...

  2. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  3. linux学习需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

  4. 分享--linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  5. 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久

    随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...

  6. 不会linux的php难找工作,学linux系统难吗

    这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...

  7. linux lamp实验报告,新手学Linux--构建lamp

    本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...

  8. Linux其实没那么难学

    互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...

  9. 大学生为什么要学Linux?Linux有什么优点?

    前言 Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到 ...

最新文章

  1. 遇事不责怪别人,换位思考能成全更好的自己
  2. 学会这八个技术,你离 BAT 大厂不远了
  3. 浅析如何让网站建设更具新颖?
  4. 小端字节序与大端字节序
  5. 【Java 虚拟机原理】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 | 静态变量 )
  6. 学习笔记Spark(十)—— Spark MLlib应用(2)—— Spark MLlib应用
  7. Anaconda prompt:Cache entry deserialization failed, entry ignored
  8. C++中多态性学习(上)
  9. 【HDU - 5468】Puzzled Elena(容斥原理,dfs序,数学,素因子分解,有坑)
  10. pandas filter_数据分析之Pandas操作(2)
  11. Java Collection接口详解
  12. c语言一年日历程序,c语言日历程序
  13. sourcetree windows下中文乱码
  14. 《Java项目开发案例整合》
  15. 电力系统暂态稳定性仿真 matlab/simulink 仿真模型+设计报告
  16. 华为路由与交换 eSight基本概述学习笔记
  17. 神秘的古文明 ———— 埃及文化
  18. rm -rf 误删除数据如何进行恢复
  19. vhdl timing requirements not met 错误 quartusII中
  20. UE5 官方案例Lyra全特性详解 6.生成防御塔

热门文章

  1. 刚回到北京,倒时差中……
  2. 上海Oracle高峰会感悟
  3. java 词频_java程序:统计单词词频,
  4. php 登录重定向,PHP登录后重定向
  5. 岳阳师范学院计算机系刘威,计算机学院青年教师刘威博士发表高水平科研论文...
  6. C#中的线程(三) 使用多线程
  7. SQL SERVER的连接方式
  8. ResorceGovernor--基础和Demo
  9. 循环语句until和while
  10. Linux下GCC的安装,GCC链接外部库