Wie stellt man mit mklink eine symbolische Verbindung zu einem relativen Pfad her?

24

Diese Webseite impliziert, dass es möglich ist, symbolische Links mit relativen Pfaden zu erstellen mklink.

Ich habe alle möglichen Möglichkeiten ausprobiert, um relative symbolische Verknüpfungen herzustellen, aber am Ende habe ich immer einen absoluten Pfad.

Wie wird es gemacht?

paradroid
quelle
MSDN hat eine merkwürdige Erklärung dafür. Es fiel mir schwer zu verstehen, wie man eine symbolische Verknüpfung herstellt, da es keine konkreten Beispiele gibt.
Iglvzx
Der einzige Grund, warum ich diesen "seltsamen Weg" kenne, ist, dass MSDOS diese Methode verwendet.
Surfasb
Ich verstehe nicht, warum meine Frage jetzt 20.000 Aufrufe hat, als das Problem durch einen Fehler in TCC / LE verursacht wurde. Symbolische Verknüpfungen werden normalerweise relativiert.
Paradroid

Antworten:

36

Symbolische Links sind standardmäßig relativ. Sie müssen explizit einen Laufwerksbuchstaben schreiben, um einen Teil des Links absolut zu machen.

Die allgemeine Syntax für einen symbolischen Link lautet:

mklink link destination

So erstellen Sie eine relative symbolische Verknüpfung: linkist ein Pfad relativ zu Ihrem Arbeitsverzeichnis und destinationist ein Pfad relativ zu link.

Beispiele:

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

Dadurch wird eine symbolische Verknüpfung erstellt, link.txtdie auf destination.txteinen Ordner verweist .

Sie können sich bewegen link.txtund es wird immer auf destination.txteinen Ordner nach oben zeigen.

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

Dadurch wird eine symbolische Verknüpfung C:\A\Link.txtfür erstelltC:\Destination.txt

iglvzx
quelle
Das ist es. Anstatt mit einem Laufwerksbuchstaben oder einem Backslash zu beginnen, beginnen Sie einfach mit einem Verzeichnis. zB mklink destination.txt "documentation\readme.txt"wird zu einem untergeordneten Ordner namens Punkt - Dokumentation über “und eine Datei in diesem Ordner * readme.txt genannt .
surfasb
@surfasb, @iglvzx: Anfangs war ich verwirrt, da ich genau das versucht habe. Aber als Sie beide bestätigen, dass dies funktioniert, habe ich festgestellt, dass es funktioniert CMD, aber nicht in dem TCC/LE, was ich verwendet habe. Ich bin überrascht, dass es Pfadargumente für externe Programme ändert (erweitert).
Paradroid
@surfasb: Dieses Problem mit TCC / LE wurde mit der neuen Version 13 behoben, ist aber mit der Version 12.11.76 aufgetreten, die ich verwendet hatte.
Paradroid
2
@paradroid: Ich bin froh, dass es funktioniert. Ich kann mich noch gut an die alte Version von TCC erinnern. Wie lange benutzt du es schon? Zum anderen verwirren mich die Nuancen der PATH-Aufzählung. Und der obligatorische [Blogeintrag] :( blogs.msdn.com/b/oldnewthing/archive/2005/11/22/495740.aspx ) darüber, wie sich frühere MS-DOS-Kompatibilitätsentscheidungen noch heute auf uns auswirken .
Surfasb