pax
pode copiar e renomear tudo de uma vez.
pax -rw -pp -k \
-s'!^source/[^/]*\([0-9]\{11\}_[0-9]\{11\}\)[^/]*\(\.[^./]*\)!!' \
-s'!.*!!' source target
pax -rw
copia arquivos; -pp
preserva as permissões e -k
diz para não sobrescrever os arquivos existentes. Os argumentos -s
dizem ao pax para renomear os arquivos enquanto estão copiando. A primeira transformação faz a renomeação desejada (usando expressões regulares básicas e substituções como em ed
. A segunda transformação transforma todos os nomes de arquivos de origem que ainda não foram correspondidos na string vazia, o que informa ao pax para não copiar o arquivo.
Nota para os fãs do zsh: até onde eu sei, você não pode obter zmv
para copiar os arquivos onde a definição não existe e deixar os outros em paz.