函数代码:
加入会话配置文件(/etc/profile、~/.bash_profile etc...)即可在交互式终端调用:
rename() {
#优化renname命令,使其支持类似CMD下`ren *.txt *.mp3`类似的操作
#更改文件拓展名快速操作:
#为避免通配符展开,使用本函数时应省略通配符,可以直接执行 rename .txt .mp3;
#也可以使用引号包裹带通配符的参数:eg:rename '*.txt' '*.mp3'
if [ $# -eq 2 -a -e "$1" ];then
/usr/bin/mv -v "$@"
elif [ $# -eq 2 ] && [[ "$1" =~ ^\*?\. && "$2" =~ ^\*?\. ]];then #批量更改文件拓展名;
/cygdrive/${SYSTEMDRIVE/:/}/Windows/system32/cmd.exe /c \
'echo 批量更改拓展名 '"$1"' 为 '"$2"'...&' \
ren '*'"${1//\*/}" '*'"${2//\*/}"
else
/usr/bin/rename "$@"
fi
}
alias ren='rename' #别名ren,与CMD下ren命令同名,遵循DOS CMD下的使用习惯;
用法一: 重命名单个文件(实际调用了原生mv命令):
rename filename.mp4 newfilename.mp4
用法二:批量重命名文件拓展名
类似cmd下 ren *.aaa *.bbb的功能
rename .txt .mp4
#或者
rename '*.txt' '*.mp4' #加引号以防止通配符展开
用法三:调用Linux系统原生rename命令;
具体使用方法请运行rename --help 查看帮助
rename xxxxx...
rename --help