Como você cria um link simbólico com um caminho relativo usando o mklink?

24

Esta página da web implica que é possível criar links simbólicos com caminhos relativos usando mklink.

Eu tentei todos os tipos de maneiras de criar links simbólicos relativos, mas sempre termino com um caminho absoluto.

Como isso é feito?

paradroid
fonte
O MSDN tem uma maneira estranha de explicar isso. Foi difícil entender como criar um link simbólico, pois não há exemplos reais.
iglvzx
A única razão pela qual conheço esse "caminho estranho" é porque o MSDOS usa esse método.
surfasb
Não entendo por que minha pergunta tem 20.000 visualizações agora, quando o problema foi causado por um bug no TCC / LE. Geralmente, os links simbólicos são feitos relativos por padrão.
Paradroid

Respostas:

36

Links simbólicos são relativos por padrão. Você deve escrever explicitamente uma letra de unidade para tornar qualquer parte do link absoluta.

A sintaxe geral para um link simbólico é:

mklink link destination

Portanto, para criar um link simbólico relativo: linkserá um caminho relativo ao seu diretório de trabalho e destinationserá um caminho relativo a link.

Exemplos:

1. mklink link.txt ..\destination.txt

Isso cria um link simbólico para o link.txtqual aponta para destination.txtuma pasta acima.

Você pode se mover link.txte sempre apontará para destination.txtuma pasta acima.

2. C:\>mklink A\Link.txt ..\Destination.txt

Isso cria um link simbólico C:\A\Link.txtparaC:\Destination.txt

iglvzx
fonte
É isso. Em vez de começar com uma letra de unidade ou uma barra invertida, você apenas começa com um diretório. por exemplo mklink destination.txt "documentation\readme.txt", apontará para uma pasta filha chamada documetation "e um arquivo nessa pasta chamado * readme.txt . #
surfasb
@surfasb, @iglvzx: No começo, fiquei confuso, pois é exatamente isso que tenho tentado. Mas, como vocês dois confirmam que isso funciona, percebi que funciona CMD, mas não dentro TCC/LE, que é o que tenho usado. Estou surpreso que esteja alterando (expandindo) argumentos de caminho para programas externos.
Paradroid
@surfasb: Esse problema com o TCC / LE foi corrigido com a nova v13, mas aconteceu com 12.11.76, que eu estava usando.
Paradroid
2
@paradroid: Fico feliz que está dando certo. Lembro-me com carinho da antiga versão antiga do TCC. Há quanto tempo você o usa agora? Em outro, não, sim, as nuances da enumeração PATH surpreendem minha mente. E a obrigatória [postagem do blog] :( blogs.msdn.com/b/oldnewthing/archive/2005/11/22/495740.aspx ) sobre como as decisões anteriores do MS-DOS em relação à compatibilidade ainda nos afetam hoje.
Surfasb #