1

Следующее происходит в командной строке в Windows 7. Странность состоит в том, что можно создать ссылку, но тогда невозможно изменить каталог на новую ссылку. Вы можете это объяснить?

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.

2 ответа2

2

Можно создать ссылку, но затем невозможно изменить каталог на новую ссылку.

Вы можете это объяснить?

Да.

mklink /D Screen_recorder_OBSstudio ".. версия /OBS-studio-0.15.2"

Вы успешно создали ссылку Screen_recorder_OBSstudio на цель с именем ..versioned/OBS-studio-0.15.2 .

К сожалению ..versioned/OBS-studio-0.15.2 не является допустимым именем каталога, поэтому при попытке cd на него вы получите сообщение об ошибке.

Я подозреваю, что вам нужно использовать одно из следующих целевых имен (в зависимости от того, где фактически находится целевой каталог, относительно того, где находится каталог, содержащий новую ссылку):

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

Заметки:

  • Лучше использовать \ в качестве разделителя элемента пути к каталогу вместо / .

Могу ли я создать ссылку, указывающую на несуществующую цель?

Да.

Помимо mklink /h (hardlink), все остальные параметры mklink позволяют ссылкам «указывать на несуществующую цель»:

Источник mklink.

Это означает, что вы можете сначала создать ссылку, а затем создать цель (после чего ссылка начнет работать).

Пример:

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

Дальнейшее чтение

0

Понял! Спасибо за подсказки.

Проблема была в наборе текста

"..versioned/OBS-studio-0.15.2"

вместо

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

Для записи, у меня есть много других ссылок на каталоги под

..versioned\

и они не дают никаких проблем. Что вводило в заблуждение, так это то, что mklink без проблем подтвердил создание ссылки при использовании / вместо \

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .