Commands
rename [options] "s/oldname/newname/" file
格式就很容易看出来怎么用的,就是/
不能丢。
-v 将重命名的内容都打印到标准输出,v 可以看成 verbose
-n 测试会重命名的内容,将结果都打印,但是并不真正执行重命名的过程
-f force 会覆盖本地已经存在的文件
-h -m -V 分别为帮助,帮助,版本
-e 比较复杂,可以通过该选项,写一些脚本来做一些复杂的事情
Examples
替换文件名中的特定字段
rename "s/AA/aa/" * # 把文件名中的AA替换成aa
修改文件后缀
rename "s/.html/.php/" * # 把.html 后缀的改成 .php后缀
rename "s/.png/.jpg/" * # 将 png 改为 jpg
添加后缀
rename "s/$/.txt/" * # 把所有的文件名都以txt结尾
$
正则表达式中表示结尾。
保留部分文件名
假如需要在批量修改的时候保留部分文件名,可以使用引用\1
,比如有下面格式的文件,只想保留日期部分。
Screenshot from 2019-01-02 15-56-49.jpg
rename -n "s/Screenshot from ([0-9\\- ]+).jpg/\1.jpg/" *
将()
匹配的内容取出来放到替换部分。