Linux下批量修改文件名

Linux下批量修改文件名,第1张

Linux下修改文件名有mv和rename。 其中mv命令只能对单个文件重命名 这是mv命令和rename命令的在重命名方面的根本区别。

linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:

输入man rename 看到第一行是:

RENAME(1) Linux Programmer’s Manual RENAME(1)

这个就是C语言版本的

而如果出现:

RENAME(1) Perl Programmers Reference Guide RENAME(1) 则是Perl版本的了

C语言版本格式:rename 原字符串 新字符串 文件名

Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名

rename支持正则表达式

例子:

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

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

批量添加文件后缀 rename "s/$//.txt/" * // 把所有的文件名都以txt结尾

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

在文件夹shell下创建文件10个文件

touch tmp_{1..10}.txt

找到含有“_“”的文件夹。

find ./ -name "*_*"

读取id, 用mv改名,$为自己理解为赋值后的id,格式为

rename

相关命令:mv

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

参数

-n *** 作预览,在不更改文件名称情况下,显示执行后的结果

-f强制执行

【常用通配符说明】

?表示一个任意字符

*表示一个或一串任意字符

-------------------------------------------------

【常用正则表达式符号说明】

^匹配输入的开始位置

$匹配输入的结尾

.匹配除换行符外的任意字符

+匹配前一个字符一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z"

[a-z]表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。

[^m-z]否定的字符区间。与不在指定区间内的字符匹配。

最后更新 2013-05-17 10:41:4

[root@localhost www]# rename 's/$/\.^abc/' /home/www/def #给www目录下的abc 更改为def 仅共参考。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8541215.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存