linux命令之-rename批量修改文件名

linux命令之-rename批量修改文件名

1、rename命令介绍

rename 用于 对文件进行命名管理,可进行批量命名并支持正则表达式,rename命令存在两个版本用法上有所区别 一个是 C语言版本支持通配符,另一个是 Perl版本.支持正则表达式,Centos6.7默认安装的是C语言的版本rename (util-linux-ng 2.17.2)

2、rename命令语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
NAME
rename - Rename files
SYNOPSIS
rename from to file...
rename -V
DESCRIPTION
rename will rename the specified files by replacing the first occurrence of from in their name by to.
#版本查看
-V, --version
Display version information and exit.
For example, given the files
foo1, ..., foo9, foo10, ..., foo278, the commands
rename foo foo0 foo?
rename foo foo0 foo??
will turn them into foo001, ..., foo009, foo010, ..., foo278.
And
rename .htm .html *.htm
will fix the extension of your html files.
SEE ALSO
mmv(1), mv(1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#中文详解
rename {from} {to} {file...}
rename -V
from:
原字符串:将文件名需要替换的字符串;
to:
目标字符串:将文件名中含有的原字符替换成目标字符串;
file:
文件:指定要改变文件名的文件列表。
#rename支持通配符
?:
可替代单个字符
*:
可替代多个字符
[charset]:
可替代charset集中的任意单个字符

3、rename使用详列

3.1、例子:通过rename批量删除文件指定字段名

1
2
3
4
5
6
7
8
9
10
11
[root@zabbix test]# for i in `seq -w 3`; do touch lisir\_$i\_linux.jpg; done
[root@zabbix test]# ll
-rw-r--r-- 1 root root 0 Oct 30 10:47 lisir_01_linux.jpg
-rw-r--r-- 1 root root 0 Oct 30 10:47 lisir_02_linux.jpg
-rw-r--r-- 1 root root 0 Oct 30 10:47 lisir_03_linux.jpg
[root@zabbix test]# rename \_linux '' *.jpg
[root@zabbix test]# ll
-rw-r--r-- 1 root root 0 Oct 30 10:47 lisir_01.jpg
-rw-r--r-- 1 root root 0 Oct 30 10:47 lisir_02.jpg
-rw-r--r-- 1 root root 0 Oct 30 10:47 lisir_03.jpg
#注意,如果想要替换掉下划线,那么你不能加任何引号

3.2、例子:通过rename批量修改文件指定字段名

1
2
3
4
5
6
7
8
9
[root@zabbix test]# ll
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_1.jpg.bak
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_2.jpg.bak
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_3.jpg.bak
[root@zabbix test]# rename lisir lgc *
[root@zabbix test]# ll
-rw-r--r-- 1 root root 0 Oct 30 10:53 lgc_1.jpg.bak
-rw-r--r-- 1 root root 0 Oct 30 10:53 lgc_2.jpg.bak
-rw-r--r-- 1 root root 0 Oct 30 10:53 lgc_3.jpg.bak

3.3、例子:通过rename批量修改后缀名

1
2
3
4
5
6
7
8
9
[root@zabbix test]# ll
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_1.jpg
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_2.jpg
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_3.jpgl
[root@zabbix test]# rename .jpg .jpg.bak *.jpg
[root@zabbix test]# ll
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_1.jpg.bak
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_2.jpg.bak
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_3.jpg.bak

3.4、注意:修改任何文件前先进行备份

1
2
3
4
5
6
7
8
[root@zabbix test]# find . -name "*.jpg" -exec cp {} {}.bak \;
[root@zabbix test]# ll
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_1.jpg
-rw-r--r-- 1 root root 0 Oct 30 10:58 lisir_1.jpg.bak
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_2.jpg
-rw-r--r-- 1 root root 0 Oct 30 10:58 lisir_2.jpg.bak
-rw-r--r-- 1 root root 0 Oct 30 10:53 lisir_3.jpg
-rw-r--r-- 1 root root 0 Oct 30 10:58 lisir_3.jpg.bak
-------------本文结束感谢您的阅读-------------
LiGuanCheng wechat
如有问题,请与我微信交流或通过右下角“daovoice”与我联系~。
请我喝一杯咖啡~