Symlinks unter Windows XP erstellen

2011-08-13 - kostaki 1 Kommentar »

Symlinks sind eine super Sache und wer öfter mit Linux zu tun hat, wird sie unter Windows vermissen, aber das muss nicht sein, den Windows kann sehr wohl auch Symlinks erstellen. Ab Windows Vista gibt es mklink dafür (eine Anleitung zu mklink gibt es hier), aber wer wie ich noch Windows XP benutzt hat wenig davon, da es das Tool hier nicht gibt.

Das ist aber kein Problem, da die einzige Voraussetzung für Symlinks unter Windows NTFS ist und das gibt es schon seit Windows 2000. Man benötigt also nur ein Tool zum erstellen des Symlinks und das gibt es von Windows Sysinternals. Es heißt Junction und so funktioniert es.

$ junction.exe -s C:\pfad\zum\symlink C:\pfad\zum\symlink\target

Als erstes wird das Ziel angegeben in dem das Target verfügbar sein soll. That's it. Nun kann man auf den Symlink zugreifen als ob es ein normales Verzeichnis ist. Es funktioniert nicht nur wie ein normales Verzeichnis, sondern es sieht auch so aus, was es etwas schwer macht zu erkennen das es sich um einen Symlink handelt. Zum entfernen des Symlinks tauscht man das -s durch ein -d aus und gibt den Pfad zum Symlink an.

$ junction.exe -d C:\pfad\zum\symlink

Ich habe die junction.exe übrigens ins Windows\System32 Verzeichnis kopiert um nicht immer den Pfad zu der Datei angeben zu müssen.

  1. Ein Kommentar

  2. Der Besucher
    schrieb am 10.02.2013 um 16:06 Uhr

    Leider ist “junction.exe” nicht in der Lage SymLink(D)’s zu erstellen, sondern nur Junction Points (JP’s). Der Parameter “-s” dient zur Auflistung der JP’s in den Unterverzeichnissen. “junction.exe” ist nicht einmal in der Lage SymLink(D)’s als solche zu erkennen (“UNKNOWN MICROSOFT REPARSE POINT”).
    Für explizite SymLink(D)’s steht bisher nur der “MKLINK”- Befehl ab Windows Vista zur Verfügung. Allerdings ist der einzig praktische Unterschied zw. JP’s und SymLinkD’s, dass SymLinks relative Pfadangaben für das Target speichern können. Für Datei-SymLinks muss man auch weiterhin (vor Vista) auf HardLinks (Befehl: “fsutil hardlink create {link} {target}”) zurückgreifen.

Kommentar schreiben

*

*