Як ви робите символічний зв’язок із відносним шляхом за допомогою mklink?


25

Ця веб-сторінка означає, що за допомогою відносних шляхів можна встановити символічні посилання mklink.

Я спробував усілякі способи встановлення відносних символічних зв’язків, але завжди закінчуюсь абсолютним шляхом.

Як це робиться?


MSDN має дивний спосіб пояснення цього. Мені важко було зрозуміти, як зробити символічне посилання, оскільки фактичних прикладів немає.
iglvzx

Єдина причина, що я знаю цей "дивний спосіб" - це те, що MSDOS використовує цей метод.
surfasb

Я не розумію, чому моє запитання нараховує 20 000 переглядів зараз, коли проблема була викликана помилкою в TCC / LE. Символічні посилання за замовчуванням зазвичай відносні.
парадороїд

Відповіді:


38

Символічні посилання за замовчуванням відносні. Ви повинні чітко написати лист диска, щоб зробити будь-яку частину посилання абсолютною.

Загальний синтаксис символьної посилання:

mklink link destination

Отже, для створення відносної символічної посилання: linkце буде шлях відносно вашого робочого каталогу , і destinationбуде шлях відносно link.

Приклади:

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

Це створює символічне посилання, link.txtяке вказує на destination.txtодну папку вгору.

Ви можете пересуватися link.txt, і це завжди буде вказувати на destination.txtодну папку вгору.

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

Це створює символічне посилання C:\A\Link.txtдляC:\Destination.txt


Це воно. Замість того, щоб починати з літери диска або зворотної косої риски, ви просто починаєте з каталогу. напр. mklink destination.txt "documentation\readme.txt", вкаже на дочірню папку під назвою "документація" і на файл у цій папці, що називається * readme.txt .
surfasb

@surfasb, @iglvzx: Спочатку я був розгублений, тому що саме це я намагався. Але як ви обидва підтверджуєте, що це працює, я зрозумів, що він працює в роботі CMD, а не в TCC/LEтому, що я використовую. Я здивований, що це змінює (розширює) аргументи шляху для зовнішніх програм.
парадороїд

@surfasb: Ця проблема з TCC / LE була виправлена ​​з новим v13, але сталася з 12.11.76, яку я використовував.
парадороїд

2
@paradroid: Я радий, що це працює. Я приємно пам’ятаю стару стару версію TCC. Як давно ви його зараз використовуєте? З іншого боку, так, нюанси перерахування PATH кидають мені на думку. І обов'язковий [допис у блозі] :( blogs.msdn.com/b/oldnewthing/archive/2005/11/22/495740.aspx ) про те, як минулі рішення MS-DOS щодо сумісності досі впливають на нас.
surfasb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.