sem garfos:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
Quando você usa um loop de shell, os mvgarfos uma vez por arquivo. O renamecomando do Perl não.
(O comando renomear do Perl tem algumas restrições, mas nesse caso específico essas restrições não se aplicam.)
Quanto ao renamecomando mostrado anteriormente, sim, isso funciona, mas você tem toda essa confusão entre dois tipos diferentes de renomeação e assim por diante. Se você tem o caminho certo, ótimo, mas se não, isso também funciona.
Se você não possui o comando perl-rename e não pode instalá-lo, basta fazer o seguinte:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
Como você pode ver, isso usa a mesma substituição mostrada na resposta superior. Claro que o perl-renomeação tem outros sinos e assobios (a resposta superior mencionado, -njá, então não há -0, -fe assim por diante), e quanto mais deles você precisa, quanto mais você deve instalar que em vez de rolar seus próprios dessa maneira .
rename. Suponho que este seja o de Larry Wallrename, dorenamepacote no Debian e derivado (e IIRCprenameem sistemas de persuasão do RedHat). Uma ferramenta muito útil.