新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
网站上传的500多张图片后发现需要区分缩略图,大图,中图。但是之前上传的没有区分,无奈之下只能省事的办法了,总不能一张一张的修改吧。写一段bash,使用mv命令达到批量重命名的目的。例子:我现在要把aaaaaaaaaaaaa.jpg重命名为aaaaaaaaaaaaa_MED.jpg请使用如下命令:for i in *.jpg;do mv "$i" "${i%.jpg}_MED.jpg" ;done同理aaaaaaaaaaaaa_MED.jpg重命名为aaaaaaaaaaaaa_LRG.jpg的方法:for i in *.jpg;do mv "$i" "${i%_MED.jpg}_LRG.jpg" ;done
创新互联专注于铜陵企业网站建设,响应式网站,成都商城网站开发。铜陵网站建设公司,为铜陵等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
查看/home下所有子目录的ok.txt并修改成OK.txt
linux 批量重名名
Linux Shell 批量重命名的方法总览
1、删除所有的 .bak 后缀:
2、把 .jpe 文件后缀修改为 .jpg:
3、把所有文件的文件名改为小写:
4、将 abcd.jpg 重命名为 abcd_efg.jpg:
5、将 abcd_efg.jpg 重命名为 abcd_lmn.jpg:
6、把文件名中所有小写字母改为大写字母:
7、把格式 *_?.jpg 的文件改为 *_0?.jpg:
8、把文件名的前三个字母变为 vzomik:
9、把文件名的后四个字母变为 vzomik:
linux需要修改文件名的时候该操作。
工具/原料:xshell、linux系统、本地设置1.0
1、打开xshell软件连接上linux服务器。
2、使用指令【touch文件名】创建一个空文件。
3、指令【ls -l】查看新创建的文件。
4、接着使用指令【mv旧文件名新文件名】修改文件名。
5、再次使用【ls -l】可以看到文件名已经被修改成功了。mv修改文件名的时候,新文件名要跟旧文件名在同一个目录下。
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] 否定的字符区间。与不在指定区间内的字符匹配。