Linux的 rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的。因为Perl版本的支持正则处理,所以功能更加强大。
Ubuntu下有两种版本的rename命令:其中C语言版的是rename.ul. Perl语言的是rename.man一下这两条命令就知道哪个是什么版的了。
C语言版的有三个参数。rename 参数1 参数2 参数3。 其中参数1是要替换的部分,参数2是替换后的字符串,参数三要替换的文件匹配。
例如:rename.ul .htm .html *.htm 就是把所有后缀名为htm改为html后缀。用通配符?也类似。
Perl版的有两个参数。第一个参数为perl正则表达式,第二个参数为所要处理的文件。
例如:rename 的典型应用:
0. 批量更改文件扩展名
$ ls
1.txt 2.txt 3.txt 4.txt
$ rename 's/\.txt/\.ext/' *
$ ls
1.ext 2.ext 3.ext 4.ext
1. 批量删除文件扩展名
$ ls
1.txt 2.txt 3.txt 4.txt
$ rename 's/\.txt//' *
$ ls
1 2 3 4
2. 批量添加文件扩展名
$ ls
1 2 3 4
$ rename 's/$/\.txt/' *
$ ls
1.txt 2.txt 3.txt 4.txt
3. 按自己的方式批量重命名文件
$ ls
1.ext 2.ext 3.ext 4.ext
$ rename 's/(\d)/第$1 章/' *
$ ls
第 1 章.ext 第 2 章.ext 第 3 章.ext 第 4 章.ext
嗯,暂时只学了这么多。