使用 rename 命令批量修改文件名与文件后缀名。
通过 man rename 命令可以得知,rename 命令其实是一个 Perl 脚本命令,它专用于批量地给多文件重命名(rename multiple files)。
注意: Perl版本的rename命令可以使用正则表达式,而C语言版本的rename命令不能使用
查看rename版本: man rename
命令格式:
rename [-v] [-n] [-f] perlexpr [filenames]
perlexpr 是一种 Perl 脚本格式的正则表达式。
参数:
- -v, –verbose 详细模式:打印成功更改的文件名列表
- -n, –no-act 测试模式:并不真正的执行命令,而只是显示哪些文件名应该怎么进行更改,用于测试模式。
- -f, –force 强制模式:在更改文件名,如果更改后的文件已经存在时覆盖已经存在的文件。
示例:
批量更改文件扩展名:
将 files 文件夹内的所有文件后缀名修改为 .jpg
$ cd /files
$ ls
1.txt 2.txt 3.txt 4.txt ……
$ rename ‘s/.txt/.jpg/’ *
$ ls
1.jpg 2.jpg 3.jpg 4.jpg……
批量删除文件后缀名:
删除 files 文件夹内的所有文件后缀名
$ cd files
$ ls
1.txt 2.txt 3.txt 4.txt ……
$ rename ‘s/.txt//’ *
$ ls
1 2 3 4……
批量添加文件扩展名:
给 files 文件夹内所有的文件添加后缀名为 .jpg
$ cd files
$ ls
1 2 3 4……
$ rename ‘s/$/.jpg/’ *
$ ls
1.jpg 2.jpg 3.jpg 4.jpg……
批量修改名文件名称:
$ cd files
$ ls
1.jpg 2.jpg 3.jpg 4.jpg……
$ rename ‘s/(d)/第$1个/’ *
$ ls
第 1 个.jpg 第 2 个.jpg 第 3 个.jpg 第 4 个.jpg……