Em zsh, use zmv
. Execute autoload -U zmv
ou coloque isso no seu '' /.zshrc ', então
zmv '(*).*(.*)' '$1$2'
ou
zmv -w '*.*.*' '$1.$3'
Como alternativa, se você tiver o comando prename
(script Perl que aplica uma expressão a cada nome de arquivo):
prename 's/\..*\././' *.*.*
Com apenas ferramentas disponíveis em todos os sistemas POSIX, use um loop a> e expansão de parâmetros para extrair as partes do nome.
for x in *.*.*; do
mv -- "$x" "${x%.*.*}.${x##*.}"
done