linux之rename命令
用字符串替换的方式批量改变文件名
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命令相关推荐
- linux命令rname,linux的rename命令
Linux下rename命令主要是批量重命名文件.下面由学习啦小编为大家整理了linux下rename命令的相关知识,希望对大家有帮助! linux的rename命令详解 rename命令用字符串替换 ...
- linux 使用rename命令批量重命名文件
linux 使用rename命令批量重命名文件 命令格式: Usage: rename [-v] [-n] [-f] perlexpr [filenames] 参数说明: v 显示文件重命名的细节 n ...
- linux下rename命令用法详解(重命名文件)
本文介绍了linux系统中rename命令的用法,用来修改文件名.重命名文件,批量重命名文件rename是最好的选择,需要的朋友参考下. 在linux系统中重命名文件,经常用到mv命令,批量重命名文件 ...
- Linux中rename命令的用法
刚学习linux的时候,对文件重命名首先想到的就是rename命令,但是按照在windows下对文件重命名的方式试了N多次都没有反应,在网上一搜索,发现很多人都对rename命令知之甚少,甚至有一部分 ...
- linux shell rename,linux shell rename命令修改文件名
1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的 在本目录下 只需要# rena ...
- linux重命名的命令行操作,Linux rename命令批量重命名的方法
Linux的 rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了,由于历史原因,在Perl语言 ...
- linux如何批量改名,Linux 批量改名之 rename 命令
刚学习到 rename 命令功能很强大,比win 下的 ren 厉害啊 具体看 man rename 语法: rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ - ...
- Linux下批量重命名文件或文件夹(rename命令)
cp mv 在复制.移动文件时,可单个更改文件名称 下面介绍Linux系统中另一个重命名命令 rename命令的用法. 批量创建那些规格差不多的文件名.[测试的第一步] [root@linuxidc ...
- linux重命名文件或文件夹(mv命令 rename命令)
转自:http://www.cnblogs.com/yes123/p/3919337.html 在linux下重命名文件或目录,可以使用mv命令或rename命令,这里分享下二者的使用方法. mv命令 ...
- Linux rename命令 批量重命名
Linux rename命令 批量重命名 Linux的 rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C ...
最新文章
- java学习之借书系统
- 记录JS event Loop机制及Node v8事件执行机制
- mysql 主键 最佳实践_Spring Data Jpa + MySQL IDENTITY 主键下批量插入最佳实践
- mysql常量求和_Mysql之:count(*)、count(常量)、count(字段)的区别
- spring学习(五)—AOP相关术语
- 垃圾回收中的finalize方法
- idea debug端口被占用
- java上传zip_JAVA 上传ZIP,RAR文件并解压
- [Pico]读取新建写入文本文件
- 操作系统 - Linux - Ubuntu
- 华夏芯闪耀登场第四届“芯动北京“论坛
- Qt笔记(四十一)之qtcreator添加pri文件
- (已解决)ModuleNotFoundError: No module named ‘pycocotools‘
- 为什么成立计算机维修社团,张家口煤矿机械制造高级技工学校学生计算机维修社团成立...
- 使用Eclipse开发Spring的第一个简单程序
- 25位全球顶尖创业者的26个日常习惯!
- XJOI 7810 计数问题
- 彩超计算机录入员招聘,招聘超声科录入员,北京朝阳急诊抢救中心
- 替换window.showModalDialog 已解决!!!
- Android 代码混淆 R8与Proguard