Symbolic Links sind in Linux Systemen eine angenehme Selbstverständlichkeit wenn es darum geht, eine Referenz von einer Datei oder einem Verzeichnis auf ein anderes zu setzen. Wie sieht es aber unter Windows, genauer gesagt unter NTFS aus?
Prinzipiell muss man bei NTFS vier Arten von Links unterscheiden:
- Shortcut oder Softlink
- Symbolic Link
- Hard Link
- Junction
Shortcuts – Softlinks
Bei den in deutschen Systemen “Verknüpfung” genannten Links handelt es sich um die einfachste und gebräuchlichste Form. Es handelt sich dabei um eine Datei (.lnk), die als Zeiger auf eine Datei an einem anderem Ort fungiert. Diese Form der Links wurde erstmalig mit Windows95 eingeführt. Verknüpfungen sind nicht dynamisch mit den Dateien auf die sie verweisen verbunden. D.h. wenn die Zieldatei verschoben, oder gelöscht wird, zeigt die Verknüpfung ins Leere.
Symbolic Link
Seit Windows Version 6 (Vista bzw. Server2008) gibt es echte symbolische Verknüpfungen auf Ebene des Dateisystems. Es können Links zu Dateien, Ordnern oder SMB Shares erzeugt werden. Dier Erstellung des Symbolic Links erfolgt mit dem mklink Befehl. Die Kommandozeile muss als Administrator ausgeführt werden.
mklink <Sourcefile> <Targetfile>
mklink \D <Source Dir> <Target Dir>
mklink \D <Sharename> <UNC Pfad>
Die Angabe des Pfades darf beim Symbolic Link relativ sein.
mklink \D "C:\mypath1\myDir1" "..\myPath2\myDir2"
Hard Links
Ein Hardlink erfolgt auf Dateisystem-Ebene. Dabei werden Quell- und Zielverzeichnis dynamisch miteinander verbunden. Auch dann, wenn Quelle oder Ziel verschoben werden. Hardlinks funktionieren daher nur innerhalb einer Partition und nur auf Dateiebene.
mklink \H <Sourcefile> <Targetfile>
Bis zu 1023 Hardlinks können auf die selbe Zieldatei zeigen. Alle Links sind gleichberechtigt. Änderungen über einen Link sind über alle anderen Hardlinks sichtbar, da alle auf den gemeinsamen Datensatz zeigen.
Junctions
Seit Windows 2000 werden sogenannte Abzweigungspunkte (Junctions) verwendet. Sie entsprechen etwa den Symbolic Links zweier Ordner. Dabei referenziert ein Ordner auf den Inhalt eines zweiten Ordners. Junctions können nur mit absoluten Pfaden erzeugt werden. Junctions können nur für Ordner eingerichtet werden.
mklink \J <Link Dir> <Original Dir>
Links
- Wikipedia – Hardlinks: http://en.wikipedia.org/wiki/Hard_link
- Wikipedia – Symbolic Link: http://en.wikipedia.org/wiki/Symbolic_link
- Microsoft Technet – mklink: http://technet.microsoft.com/de-de/library/cc753194