Este é um trabalho para o rsync . Não há nenhum benefício em fazer isso manualmente com um loop de shell, a menos que você queira mover o arquivo em vez de copiá-lo.
rsync -a /images/ /images2/
(Anote a barra no final em images , caso contrário, copie para /images2/images .)
Se houver imagens com o mesmo nome nos dois diretórios, o comando acima sobrescreverá /images2/SOMEPATH/SOMEFILE com /images/SOMEPATH/SOMEFILE . Se você quiser substituir apenas arquivos mais antigos, adicione a opção -u . Se você quiser manter sempre a versão em /images2 , adicione a opção --ignore-existing .
Se você quiser mover os arquivos de /images , com rsync, poderá passar a opção --remove-source-files . Em seguida, o rsync copia todos os arquivos por vez e remove cada arquivo quando é feito. Isso é muito mais lento do que mover se os diretórios de origem e destino estiverem no mesmo sistema de arquivos.