Acontece com muita frequência se eu quiser criar um link simbólico: estou recebendo o erro Too many symbolic links
. O que isso significa e por que só consigo resolver esse erro quando estou no diretório onde desejo criar o link simbólico?
Por exemplo:
cd /foo/bar
/foo/bar: sudo ln -s /some/dir /foo/bar
Isso funciona.
Isso me dá o erro:
cd ~
~: sudo ln -s /some/dir /foo/bar
Seu exemplo mostra você mudando para o diretório
/foo/bar
antes de tentar criar o link simbólico. Então/foo/bar
já existe, como um diretório ou um link simbólico para outro diretório.Então seu comando:
ln -s /some/dir /foo/bar
tenta criar/foo/bar
como um link para/some/dir
. Isso deve falhar, como/foo/bar
já existe.Parece que você trocou os argumentos de arquivo/dir em seu comando. Para criar um link com
ln -s
, o primeiro arquivo/diretório deve existir e o segundo não. (Isso é muito parecido com um comando cp)Para sua pergunta principal, você não precisa estar em nenhum local específico para criar um link simbólico com sucesso. O
ln -s
comando pode usar caminhos completos para a origem ou destino (ou ambos) ou pode usar caminhos relativos. Contanto que você tenha permissões para criar o link no diretório pai do destino, você pode criá-lo sem que seu diretório de trabalho esteja em nenhum dos caminhos.Pode ser causado por um uso anterior de
ln
. Você pode ter confundido o alvo.Por exemplo, isso causará o erro.
ou na forma antiga mais ambígua