linux 使用rename命令批量重命名文件
命令格式:
Usage: rename [-v] [-n] [-f] perlexpr [filenames]
参数说明:
v 显示文件重命名的细节
n 不执行重命名,但会模拟执行重命名,并显示会出现的情况,例如是否会有同名文件冲突等。在重命名前测试很有用。
f 强制覆盖同名文件
例子1:显示重命名细节
使用touch命令创建3个txt文件,使用rename命令批量将所有后缀为txt重命名为log
touch a.txt
touch b.txt
touch c.txt
rename -v 's/.txt/.log/' *.txt
v 参数作用,显示文件重命名细节
fdipzone@ubuntu:~$ rename -v 's/.txt/.log/' *.txt
a.txt renamed as a.log
b.txt renamed as b.log
c.txt renamed as c.log
例子2:测试重命名是否遇到同名
touch a.txt
touch b.txt
touch c.txt
touch a.log
touch b.log
rename -n 's/.txt/.log/' *.txt
n 参数作用,不执行重命名,但会显示如果执行重命名会出现的同名情况
fdipzone@ubuntu:~$ rename -n 's/.txt/.log/' *.txt
a.txt not renamed: a.log already exists
b.txt not renamed: b.log already exists
c.txt renamed as c.log
例子3:强制覆盖同名文件
touch a.txt
touch b.txt
touch a.log
touch b.log
rename -f 's/.txt/.log/' *.txt
如果使用 v 参数,会因为同名文件存在而重命名失败
fdipzone@ubuntu:~$ rename -v 's/.txt/.log/' *.txt
a.txt not renamed: a.log already exists
b.txt not renamed: b.log already exists
f 参数作用,强制覆盖同名文件
fdipzone@ubuntu:~$ rename -fv 's/.txt/.log/' *.txt
a.txt renamed as a.log
b.txt renamed as b.log
执行后,a.txt与b.txt重命名为a.log与b.log,覆盖原来的a.log与b.log