Crie um link simbólico absoluto para o diretório atual

9

Agora estou sob um diretório com um caminho muito longo. Para uma visita futura mais rápida, gostaria de criar um link para ela.

Eu tentei

ln -s . ~/mylink

~/mylink na verdade está vinculado a ~ . Então, posso expandir ~ para o nome de caminho obsoleto e, em seguida, dar para ln ?

    
por Tim 01.08.2014 / 03:23

2 respostas

16

Um link simbólico realmente armazena o caminho que você dá literalmente, como uma string¹. Isso significa que seu link ~/mylink contém " . " (um caractere). Quando você acessa o link, esse caminho é interpretado em relação ao local onde o link está, e não onde você estava quando você fez o link.

Em vez disso, você pode armazenar o caminho real desejado no link:

ln -s "$(pwd)" ~/mylink

usando substituição de comando para colocar a saída de pwd (o nome do diretório de trabalho) em sua linha de comando. ln vê o caminho completo e o armazena em seu symlink, que apontará para o lugar certo.

¹ Mais ou menos.

    
por 01.08.2014 / 03:29
5

Você deve usar:

ln -s "$(cd . && pwd)" ~/mylink

ou:

ln -s "$(pwd -P)" ~/mylink

para obter o resultado correto para o diretório de trabalho atual. Ele pode ser alterado enquanto você estava trabalhando nele como neste pergunta .

    
por 01.08.2014 / 06:48