How can I make sure that the wildcard only uses the first found match and stops after?
Para mover apenas o primeiro arquivo encontrado, substitua:
mv -v -f /$currentimages/*"$file"* $oldimages
Com:
for f in "/$currentimages/"*"$file"*
do
mv -v -f "$f" "$oldimages"
break
done
break
faz com que o loop saia após o primeiro arquivo.
Além disso, adicionamos citações em torno das variáveis currentimages
e oldimages
shell para impedir a divisão de palavras.