Os links simbólicos serão quebrados porque serão parecidos com
.cvsignore -> .cvsignore
etc.
Quando você cria um link simbólico com
ln -s source target
o target
será um link simbólico que aponta para source
exatamente da maneira como você o escreveu.
Então, o que está faltando é o caminho para a fonte (aqui estou usando a variável $PWD
que contém o caminho absoluto para o diretório atual):
ln -s "$PWD/$i" "$HOME/$i"
Na maioria das vezes, um está localizado no diretório target ao criar o link:
ln -s some/dir/where/the/file/is mylink
O link (o caminho para o qual o link aponta) deve ser absoluto ou ser relativo ao local do link.