rename-批量重命名命令
原来还很麻烦的用for循环(Ubuntu下批量重命名),其实只用rename就够了。比如,要把所有的文件名改为小写:
rename ‘tr/A-Z/a-z/’ *
把所有文件的后缀由rm改为rmvb
rename ‘s/.rm$/.rmvb/’ *
替换时,只匹配第一次找到的子串,如果要替换所有匹配到的子串,需要添加g,比如有以下文件:
1.txt,11.txt,111.txt
命令
rename ‘s/1/a/’ *.txt
得到的结果是
a.txt, a1.txt, a11.txt
而,命令
rename ‘s/1/a/g’ *.txt
得到的结果是
a.txt, aa.txt, aaa.txt
2011-4-19补充:
一个文件名交换前后两部分的例子:
rename ‘s/(.*)(2009\d*)/$2$1/’ *
这个命令处理中文有问题,也可能是我没有找对参数。
记得好想说rename不符合posix标准,不是所有unix-like系统都有的,所以推荐使用mv来着……
忘记了,想不起来了
[回复]
amao 回复:
六月 17th, 2010 at 7:27 下午
我倒是没想过这么多,不过使用mv确实是另外一个可行的方案,不知道rename之前,一直用mv。
[回复]
delectate
17 六 10 at 4:45 下午