Você pode alterar o alvo de um link sem excluí-lo, forçando ln
a fazer isso.
ln -f -s /new/location/to/link newlink
Por exemplo:
ln -f -s /home2/s01/public_html/cgi-bin/uploads/00029/zmjppcxlpq2m zmjppcxlpq2m.png
ou você pode fazer uma substituição atômica com mv:
ln -s /home2/s01/public_html/cgi-bin/uploads/00029/zmjppcxlpq2m new_zmjppcxlpq2m.png
mv new_zmjppcxlpq2m.png zmjppcxlpq2m.png
Para alterar todos os links em algum diretório, tente com algo semelhante a:
find /dir/with/symlinks/ -lname "/home/s01/public_html/cgi-bin/uploads/00029/*" \
-exec sh -c 'ln -sf 'echo $(readlink $0) | sed s/home/home2/' $0' {} \;
tenha cuidado ao fazer backup de todos os links simbólicos antes de executar qualquer comando