Isso deve funcionar:
rename -n 's/^([0-9]+) (.*)\.jpg/ .jpg/' /path/to/files/*.jpg
Amostra:
0324 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt
0123 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt
0124 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt
Resultados:
rename(0123 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt, [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL) 0123.txt)
rename(0124 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt, [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL) 0124.txt)
rename(0324 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt, [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL) 0324.txt)
Observação: Testado com arquivos .txt também funcionará em nomes de arquivos jpg
Informação:
([0-9]+) : escolha os números na frente.
(.*) : escolha todas as outras coisas até a extensão do arquivo.
.txt : retorna os grupos capturados com o grupo retornado para numbers colocado próximo à extensão de arquivo jpg e adiciona um espaço antes dos números.
-n : roda sem alterar o nome do arquivo para vermos quais arquivos são alterados e para quais nomes são alterados, remova-o para renomear os arquivos.