Im Kontext von NTFS:
MKLINK [[/D] | [/H] | [/J]] Link Target
/D
Erstellt eine symbolische Verzeichnisverknüpfung. Standard ist ein Dateisymbollink.
/H
Erstellt eine feste Verbindung anstelle einer symbolischen Verbindung.
/J
Erstellt eine Directory Junction.
Link
Gibt den neuen symbolischen Linknamen an.
Target
Gibt den Pfad (relativ oder absolut) an, auf den der neue Link verweist.
Ist eine Verzeichnisverknüpfung nicht genau dasselbe wie eine symbolische Verzeichnisverknüpfung ?
Was ist der Unterschied zwischen
mklink /D f1 f2
undmklink /J f1 f2
?Da ein "Verzeichnis" eigentlich nur eine Datei ist , was wäre der Unterschied zwischen einer symbolischen Verzeichnisverknüpfung und einer symbolischen Dateiverknüpfung?
quelle
Antworten:
Eine Junction ist definitiv nicht dasselbe wie eine symbolische Verzeichnisverknüpfung, obwohl sie sich ähnlich verhalten. Der Hauptunterschied besteht darin, dass bei einem Remoteserver Junctions auf dem Server verarbeitet werden und Verzeichnissymbolverknüpfungen auf dem Client verarbeitet werden . Siehe auch Matthews Kommentar zur Tatsache, dass dies bedeutet, dass symbolische Verknüpfungen im lokalen Dateisystem auf ferne Dateisysteme verweisen können.
Angenommen, auf einem Computer mit dem Namen Alice sollten Sie einen Knotenpunkt
c:\myjp
und eine symbolische Verzeichnisverknüpfung einfügenc:\mysymlink
, die beide auf zeigenc:\targetfolder
. Während du Alice benutzt, wirst du keinen großen Unterschied zwischen ihnen bemerken. Wenn Sie jedoch eine andere Maschine mit dem Namen Bob verwenden, ist dies der Knotenpunkt\\Alice\c$\myjp
wird zeigen auf\\Alice\c$\targetfolder
aber die symbolische Verbindung
\\Alice\c$\mysymlink
wird zeigen auf\\Bob\c$\targetfolder
(Vorsichtsmaßnahme: Standardmäßig folgt das System Symlinks auf Remote-Volumes nicht. In den meisten Fällen führt das zweite Beispiel zu "Datei nicht gefunden" oder "Der symbolischen Verknüpfung kann nicht gefolgt werden, da ihr Typ deaktiviert ist." )
Der Unterschied zwischen einem Verzeichnissymbollink und einem Dateisymbollink besteht einfach darin, dass einer ein Verzeichnis und einer eine Datei darstellt. Da das Ziel der Verknüpfung beim Erstellen der Verknüpfung nicht vorhanden sein muss, muss das Dateisystem wissen, ob Anwendungen davon in Kenntnis gesetzt werden sollen, dass es sich um ein Verzeichnis handelt oder nicht.
Es sollte auch beachtet werden, dass das Erstellen einer symbolischen Verknüpfung spezielle Berechtigungen erfordert (standardmäßig nur für Prozesse mit erhöhten Rechten verfügbar), während das Erstellen einer Junction nur den Zugriff auf das Dateisystem erfordert.
quelle
C:\testlink
(dieC:\test
auf meinen Computer verweist ) erstelle und jemand auf meinen Computer zugreift und darauf klicktC:\testlink
, wird diese auf denC:\test
auf SEINEM Computer aufgelöst, wohingegen wenn ich eine Verzeichnisverknüpfung erstelleC:\testlink
(die auf verweist)C:\test
auf meinem Computer), und jemand hat Fernzugriff auf meinen Computer und klickt aufC:\testlink
) würde ihn dazu führen, dassC:\test
auf meinem Computer? Oder habe ich es falsch herum verstanden?C:\MyNetworkShare
die ebenfalls darauf verweist\\Alice\Share
?Komplexes Sprechen schmerzt das Gehirn - ich mag Charts:
Angenommen, any
MyLink
ist eine symbolische Verknüpfung und anyMyJunc
ist eine Kreuzung, auf die gezeigt wirdTarget as created
.z.B
mklink /D MyLink C:\T_Dir
zum Erstellen einer symbolischen Verknüpfung zum Zielverzeichnismklink /J MyJunc C:\T_Dir
zum Erstellen einer Verzeichnisverknüpfung zum ZielverzeichnisWobei die Syntax
mklink [/J,/D] [link path] [target path]
auf dem lokalen Computer wie angegeben istFehler * 1 - Wenn Sie den Zugriff auf symbolische Remoteverbindungen auf Ihrem lokalen Computer freigegeben haben, funktioniert dies nur auf dem lokalen Computer, auf dem die Sperrung aufgehoben wurde
quelle
d:\_tmp\data
. Link erstellen wie folgt:d:\_tmp>mklink /d data-link data
. Der Remote-Benutzer hat uneingeschränkten Zugriff aufd:\_tmp
alle Unterordner, kann diese jedoch weiterhin nicht öffnend:\_tmp\data-link
.Complex talk hurts brain -- I like charts
Ich liebe diesen Satz und die Grafik auch.Symbolische Links bieten mehr Funktionen, während Junctions aufgrund ihrer Einschränkungen fast schon ein Legacy-Feature zu sein scheinen. Die Auswirkungen dieser Einschränkungen auf die Sicherheit sind jedoch insbesondere der Grund, warum eine Junction möglicherweise einer symbolischen Verbindung vorgezogen wird. Durch Remote-Targeting werden symbolische Links funktionsfähiger, aber auch das Sicherheitsprofil wird erhöht, während Junctions möglicherweise als sicherer angesehen werden, da sie auf lokale Pfade beschränkt sind . Wenn Sie also eine lokale Verbindung wünschen und mit einem absoluten Pfad leben können, ist es wahrscheinlich besser, mit einer Kreuzung zu arbeiten. Andernfalls sollten Sie einen symbolischen Link für die hinzugefügten Fähigkeiten in Betracht ziehen.
** Die Aussage über den Unterschied in Geschwindigkeit / Komplexität stammt von einer nicht überprüften Aussage im Wikipedia-Eintrag zu NTFS-Analysepunkten (eine gute Lektüre). *
Andere NTFS-Link-Vergleiche
Hier sind einige andere Vergleiche zu diesem Thema, die jedoch bei der Betrachtung von Junctions irreführend sein können, da in ihnen die oben aufgeführten Vorteile nicht aufgeführt sind.
Von hier genommen (eine gute Einführung gelesen)
Von der SS64-Seite auf MKLink
Kommentare zur Terminologie
Junctions sind symbolische Links
Verknüpfungen und symbolische Verknüpfungen verhalten sich wirklich genauso (Analysepunkte), abgesehen von den oben genannten Unterschieden in der Art und Weise, wie sie verarbeitet werden. Tatsächlich ist eine Junction technisch gesehen eine symbolische Verknüpfung, und manchmal wird eine Junction in der Dokumentation als symbolische Verknüpfung bezeichnet, wie dies hier der Fall ist . Das ist also nur etwas, das Sie in Bezug auf die Terminologie beachten sollten.
NTFS
Auch wenn das OP dies spezifiziert, sollte darauf hingewiesen werden, dass "symbolische Verknüpfung" ein sehr allgemeiner Begriff ist, der nicht spezifisch für NTFS ist. Genauer gesagt handelt es sich bei diesem Vergleich um NTFS-Junctions im Vergleich zu symbolischen NTFS-Links.
quelle