Windows 7 link oddity

1

O seguinte acontece em um prompt de comando no Windows 7. O mais estranho é que é possível criar um link, mas não é possível alterar o diretório para o novo link. Você é capaz de explicar isso?

C:\Luca\programs>mklink /D Screen_recorder_OBSstudio ..versioned/OBS-studio-0.15.2
Invalid switch - "OBS-studio-0.15.2".

C:\Luca\programs>mklink /D Screen_recorder_OBSstudio "..versioned/OBS-studio-0.15.2"
symbolic link created for Screen_recorder_OBSstudio <<===>> ..versioned/OBS-studio-0.15.2

C:\Luca\programs>cd Screen_recorder_OBSstudio
The filename, directory name, or volume label syntax is incorrect.
    
por user2335321 01.08.2016 / 12:15

2 respostas

2

É possível criar um link, mas não é possível alterar o diretório para o novo link.

Are you able to explain it?

Sim.

mklink /D Screen_recorder_OBSstudio "..versioned/OBS-studio-0.15.2"

Você criou com êxito um link chamado Screen_recorder_OBSstudio para um destino chamado ..versioned/OBS-studio-0.15.2 .

Infelizmente, ..versioned/OBS-studio-0.15.2 não é um nome de diretório válido, portanto, quando você tentar cd , receberá um erro.

Suspeito que você precise usar um dos seguintes nomes de destino (dependendo de onde o diretório de destino está realmente localizado, relativo ao local em que o diretório que contém o novo link está):

  • versioned\OBS-studio-0.15.2
  • .\versioned\OBS-studio-0.15.2
  • ..\versioned\OBS-studio-0.15.2

Notas:

  • É melhor usar \ como um delimitador de elemento de caminho de diretório em vez de / .

Posso criar um link que aponte para um alvo inexistente?

Sim.

Além de mklink /h (hardlink), as outras opções mklink permitem links para "apontar para um destino inexistente":

enter image description here

Fonte mklink .

Isso significa que você pode criar o link primeiro e criar o destino mais tarde (nesse ponto, o link começará a funcionar).

Exemplo :

F:\test>dir foo
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

File Not Found

F:\test>mklink /d alink foo
symbolic link created for alink <<===>> foo

F:\test>dir foo
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

File Not Found

F:\test>md foo

F:\test>dir foo
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\foo

01/08/2016  12:34    <DIR>          .
01/08/2016  12:34    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  1,772,975,259,648 bytes free

Leitura Adicional

por 01.08.2016 / 12:28
0

Entendi! Obrigado pelas dicas.

O problema foi digitar

"..versioned/OBS-studio-0.15.2"

em vez de

"..versioned\OBS-studio-0.15.2".

Para o registro, eu tenho muitos outros links para diretórios em

..versioned\

e eles não dão problema. O que foi enganoso foi que mklink reconheceu sem nenhum problema a criação do link, ao usar / em vez de \

C:\Luca\programs>mklink /D Screen_recorder_OBSstudio "..versioned/OBS-studio-0.15.2"
symbolic link created for Screen_recorder_OBSstudio <<===>> ..versioned/OBS-studio-0.15.2
    
por 01.08.2016 / 14:41