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

rename 命令存在两个版本用法上有所区别

C语言版本, 支持通配符
[常用通配符说明]
?    表示一个任意字符
*    表示一个或一串任意字符
[charset]    可替代charset集中的任意单个字符Perl版本, 支持正则表达式
[常用正则表达式符号说明]
^    匹配输入的开始位置
$    匹配输入的结尾
.    匹配除换行符外的任意字符
+    匹配前一个字符一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z"
[a-z]    表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
[^m-z]    否定的字符区间。与不在指定区间内的字符匹配。

区分方法: rename --version

如果返回结果中包含 util-linux , 说明是 C 语言版本, 反之是 Perl 版本

# Perl版本 | Ubuntu(18),Mint(20)默认的是Perl版本
$ rename --version
/usr/bin/rename using File::Rename version 1.10# C语言版本 | Centos(7)默认的是C语言版本
$ rename --version
rename,来自 util-linux 2.23.2

语法

# Perl版本
rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ] [ -e|-E perlexpr]*|perlexpr [ files ]# C语言版本
rename [选项] 表达式 替换的字符 文件...

参数

# Perl版本
-v, --verbose  详细:成功重命名的文件的打印名称。
-0, --null 从STDIN读取时,请使用\0作为记录分隔符
-n, --nono 不执行任何操作:打印要重命名的文件名,但不重命名。
-f, --force 覆盖:允许覆盖现有文件
--path, --fullpath 重命名完整路径:包括任何目录组件。默认
-d, --filename, --nopath, --nofullpath 不重命名目录:仅重命名路径的文件名部分
-h, --help 帮助:打印提要和选项。
-m, --man 手册: 打印手册页.
-V, --version 版本: 显示版本号.
-e  表达: 作用于文件名的代码. 可以重复来构建代码(比如“perl-e”)。如果没有-e,则第一个参数用作代码。
-E      语句:对文件名执行操作的代码,如-e,但终止于 ';'.
# C语言版本
-v, --verbose 提供视觉反馈,其中重命名了哪些文件(如果有的话)
-V, --version 显示版本信息并退出。
-s, --symlink 在符号链接目标上执行重命名
-h, --help 显示帮助文本并退出

Perl 版本

将 1.txt 2.txt 重命名为 1.log 2.log

$ rename -v "s/txt/log/g" 1.txt 2.txt
1.txt renamed as 1.log
2.txt renamed as 2.log

修改文件的后缀

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

批量添加文件后缀

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

批量删除文件名

rename "s//.txt//" *   # 把所有以.txt结尾的文件名的.txt删掉
C 语言版本

将 1.txt 2.txt 重命名为 1.log 2.log

$ rename -v txt log 1.txt 2.txt
`1.txt' -> `1.log'
`2.txt' -> `2.log'

将当前目录下.htm批量改成.html

> rename .htm .html *.htm

文件夹中有这些文件foo1, …, foo9, foo10, …, foo278

把foo1到foo9的文件重命名为foo01到foo09

> rename foo foo0 foo?

foo01到foo99的所有文件都被重命名为foo001到foo099

> rename foo foo0 foo??

从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo。

> rename foo0 foo foo0[2]*

原文链接:https://rumenz.com/rumenbiji/linux-rename.html
微信公众号:入门小站

  • 回复【1001】获取 linux常用命令速查手册
  • 回复【10010】获取 阿里云ECS运维Linux系统诊断
  • 回复【10012】获取 Linux学习笔记【强悍总结值得一看】
  • 回复【10013】获取 shell简明教程

linux之rename命令相关推荐

  1. linux命令rname,linux的rename命令

    Linux下rename命令主要是批量重命名文件.下面由学习啦小编为大家整理了linux下rename命令的相关知识,希望对大家有帮助! linux的rename命令详解 rename命令用字符串替换 ...

  2. linux 使用rename命令批量重命名文件

    linux 使用rename命令批量重命名文件 命令格式: Usage: rename [-v] [-n] [-f] perlexpr [filenames] 参数说明: v 显示文件重命名的细节 n ...

  3. linux下rename命令用法详解(重命名文件)

    本文介绍了linux系统中rename命令的用法,用来修改文件名.重命名文件,批量重命名文件rename是最好的选择,需要的朋友参考下. 在linux系统中重命名文件,经常用到mv命令,批量重命名文件 ...

  4. Linux中rename命令的用法

    刚学习linux的时候,对文件重命名首先想到的就是rename命令,但是按照在windows下对文件重命名的方式试了N多次都没有反应,在网上一搜索,发现很多人都对rename命令知之甚少,甚至有一部分 ...

  5. linux shell rename,linux shell rename命令修改文件名

    1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的 在本目录下 只需要# rena ...

  6. linux重命名的命令行操作,Linux rename命令批量重命名的方法

    Linux的 rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了,由于历史原因,在Perl语言 ...

  7. linux如何批量改名,Linux 批量改名之 rename 命令

    刚学习到 rename 命令功能很强大,比win 下的 ren 厉害啊 具体看 man rename 语法:  rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ - ...

  8. Linux下批量重命名文件或文件夹(rename命令)

    cp  mv 在复制.移动文件时,可单个更改文件名称 下面介绍Linux系统中另一个重命名命令 rename命令的用法. 批量创建那些规格差不多的文件名.[测试的第一步] [root@linuxidc ...

  9. linux重命名文件或文件夹(mv命令 rename命令)

    转自:http://www.cnblogs.com/yes123/p/3919337.html 在linux下重命名文件或目录,可以使用mv命令或rename命令,这里分享下二者的使用方法. mv命令 ...

  10. Linux rename命令 批量重命名

    Linux rename命令 批量重命名 Linux的 rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C ...

最新文章

  1. java学习之借书系统
  2. 记录JS event Loop机制及Node v8事件执行机制
  3. mysql 主键 最佳实践_Spring Data Jpa + MySQL IDENTITY 主键下批量插入最佳实践
  4. mysql常量求和_Mysql之:count(*)、count(常量)、count(字段)的区别
  5. spring学习(五)—AOP相关术语
  6. 垃圾回收中的finalize方法
  7. idea debug端口被占用
  8. java上传zip_JAVA 上传ZIP,RAR文件并解压
  9. [Pico]读取新建写入文本文件
  10. 操作系统 - Linux - Ubuntu
  11. 华夏芯闪耀登场第四届“芯动北京“论坛
  12. Qt笔记(四十一)之qtcreator添加pri文件
  13. (已解决)ModuleNotFoundError: No module named ‘pycocotools‘
  14. 为什么成立计算机维修社团,张家口煤矿机械制造高级技工学校学生计算机维修社团成立...
  15. 使用Eclipse开发Spring的第一个简单程序
  16. 25位全球顶尖创业者的26个日常习惯!
  17. XJOI 7810 计数问题
  18. 彩超计算机录入员招聘,招聘超声科录入员,北京朝阳急诊抢救中心
  19. 替换window.showModalDialog 已解决!!!
  20. Android 代码混淆 R8与Proguard

热门文章

  1. HUB、Switch、Router在OSI模型层次信息
  2. 强大的ETL利器—DataFlow3.0
  3. Android手机启动流程探究
  4. 【MOOC-生物信息学-蛋白质结构预测与分析】(占坑)
  5. c语言贪吃蛇自动移动,C语言贪吃蛇移动
  6. 生活随记 - 2020国庆第八天
  7. 凌波多媒体教室软件_看胖瘦终端,如何让教室变得更“智慧”
  8. 数学建模6 典型相关分析
  9. python破解压缩包密码(密码字典)
  10. SQL恢复挂起的原因和措施解析