Novato aqui. Eu estava aprendendo sobre ln
comando. Então criei um link simbólico para um arquivo foo.txt dentro de outra barra de diretório.
ln -s foo.txt bar
Quando tento acessar bar/foo.txt
, recebo o erro " Muitos níveis de links simbólicos ". Alguém pode explicar um pouco mais os links simbólicos? E o que tentei fazer não é possível ou existe outra forma de o conseguir? Basicamente eu quero um link para foo na barra de diretórios que está no mesmo diretório que foo.
directory
|__foo.txt
|__bar
|__(link to foo.txt)?
Os destinos do link simbólico são armazenados como caminhos brutos (portanto, link 'simbólico'). Por padrão, quando você usa
ln -s
o caminho de destino é armazenado literalmente – não é relativo, é armazenado exatamente como você o especificou.Os caminhos relativos devem, portanto, ser especificados como se fossem relativos à localização do link, e não à sua localização atual:
Como o link está em
bar/
, o link levará abar/../foo.txt
.Criar links relativos será muito mais fácil se você primeiro
cd
descobrir onde o link estará (pois a localização do link e sua localização atual serão as mesmas).No Linux recente, o
ln
comando tem uma-r
opção adicional para simplificar isso e criar links relativos da maneira que você espera que funcionem:(Observe que depois de fazer isso, o alvo do link se tornará automaticamente
../foo.txt
novamente.)No Linux você pode tentar usar o
namei
comando para obter uma representação visual de como um determinado caminho (incluindo links simbólicos) é seguido.