1.命令作用
通常被用来重命名文件扩展名、删除文件前缀或后缀、替换特定字符等操作
两个版本:
- C版本(默认版本)
- Perl版本(需要另行安装,安装执行perl -MCPAN -e 'install File::Rename')
版本查看:执行man rename查看
- C版本man rename 输出第一行提示:RENAME(1) User CommandsRENAME(1)
- Perl版本man rename 输出第一行提示:RENAME(1) User Contributed Perl Documentation RENAME(1)
功能说明:Rename命令的功能是用于批量修改文件名称
- C语言是替换关键字来批量重命名文件名
- Perl可基于正则表达式来批量重命名文件名
2.命令语法
C版本:
Usage: rename [options] expression replacement file...
Usage: rename [选项] <表达式> <替换> <文件>
Perl版本:
rename [选项] <perl表达式> <文件>
3.参数详解
C版本:
options:
- -v, --verbose,说明正在做的操作
- -s, --symlink,操作符号链接文件
4.常用用例
4.1.C版本批量修改文件后缀
生成5个以csv为后缀的文件,使用rename将5个文件后缀.csv批量修改为.txt
[root@localhost test]# touch file{1..5}.csv
[root@localhost test]# ll
total 0
-rw-r--r--. 1 root root 0 Jan 12 03:18 file1.csv
-rw-r--r--. 1 root root 0 Jan 12 03:18 file2.csv
-rw-r--r--. 1 root root 0 Jan 12 03:18 file3.csv
-rw-r--r--. 1 root root 0 Jan 12 03:18 file4.csv
-rw-r--r--. 1 root root 0 Jan 12 03:18 file5.csv
[root@localhost test]# rename .csv .txt *.csv
[root@localhost test]# ll
total 0
-rw-r--r--. 1 root root 0 Jan 12 03:18 file1.txt
-rw-r--r--. 1 root root 0 Jan 12 03:18 file2.txt
-rw-r--r--. 1 root root 0 Jan 12 03:18 file3.txt
-rw-r--r--. 1 root root 0 Jan 12 03:18 file4.txt
-rw-r--r--. 1 root root 0 Jan 12 03:18 file5.txt
[root@localhost test]#
4.2.Perl版本常用用法
rename 's/\.txt$//' * # 删除后缀
rename 's/$/\.zip/' * # 添加后缀
rename 's/\.zip$/.txt/' * # 修改后缀
rename 's/^test/good/' * # 修改前缀
rename 's/^test//' * # 删除前缀
rename 's/^/good/' * # 添加前缀
rename 's/\.txt$/\.bak.txt/' * # 后缀前添加备份标志
rename 's/\.txt/.csv/;s/^/aaaa/' *1.txt # 组合使用方法1
rename -E 's/\.txt/.csv/' -E 's/^/aaaa/' *1.txt # 组合使用方法2