Wie unterscheide ich eine Junction von einem Hardlink oder Symbolic Link in der Eingabeaufforderung?
- Grundlagen der Links im Windows-Dateisystem
- Was ist ein Hardlink?
- Was ist ein Symbolic Link (Symlink)?
- Was ist eine Junction?
- Wie erkennt man Junctions, Hardlinks und Symbolic Links in der Eingabeaufforderung?
- Erkennen von Symbolic Links und Junctions mit dir
- Unterscheidung zwischen Symbolic Link und Junction
- Erkennen von Hardlinks
- Zusammenfassung der Vorgehensweise
Grundlagen der Links im Windows-Dateisystem
Im Windows-Dateisystem gibt es verschiedene Arten von Verweisen, die verwendet werden können, um Dateien oder Ordner an mehreren Stellen verfügbar zu machen, ohne dass die Daten mehrfach gespeichert werden. Die wichtigsten Arten sind Hardlinks, Symbolic Links (Symlinks) und Junctions. Jeder dieser Links unterscheidet sich in ihrer Funktionsweise und ihren Einsatzgebieten.
Was ist ein Hardlink?
Ein Hardlink ist ein zweiter Name für dieselbe Datei. Er zeigt direkt auf denselben Dateninhalt auf der Festplatte und existiert nur für Dateien, nicht für Ordner. Wenn Sie eine Datei mit mehreren Hardlinks haben, sind alle Hardlinks gleichwertige Hauptnamen für dieselbe Datei. Wird die Datei an einem Hardlink-Pfad geändert, sieht man die Änderungen über alle anderen Hardlinks ebenfalls. Hardlinks können nur innerhalb desselben Volumens erstellt werden.
Was ist ein Symbolic Link (Symlink)?
Ein Symbolic Link ist eine Art Verknüpfung, die auf eine andere Datei oder einen anderen Ordner verweist. Er funktioniert ähnlich wie eine Verknüpfung im GUI, ist aber auf Dateisystemebene vorhanden und wird von Programmen als direkter Pfad interpretiert. Symbolic Links können sowohl auf Dateien als auch auf Ordner verweisen und können sogar auf andere Volumes oder Netzwerklaufwerke zeigen.
Was ist eine Junction?
Eine Junction (auch als Junction Point bezeichnet) ist eine spezielle Art des Symbolic Links, die jedoch nur auf Verzeichnisse (Ordner) verweist und nur auf lokale NTFS-Volumes funktioniert. Junctions sind älter als Symlinks, werden aber in gewissen Situationen weiterhin verwendet. Im Gegensatz zu Symlinks unterstützen sie keine Verlinkung auf Dateien oder entfernte Netzlaufwerke.
Wie erkennt man Junctions, Hardlinks und Symbolic Links in der Eingabeaufforderung?
In der Windows-Eingabeaufforderung (CMD) gibt es mehrere Möglichkeiten, um die Art eines Links zu bestimmen. Ein einfaches Durchsuchen mit dir zeigt bereits einige Hinweise, aber für detaillierte Informationen benötigt man Tools wie fsutil, dir /al oder mklink mit bestimmten Parametern.
Beim normalen dir Befehl erscheinen Symbolic Links und Junctions mit dem Attribut <SYMLINK> oder <JUNCTION>. Hardlinks erscheinen wie normale Dateien und haben keine besonderen Kennzeichnungen.
Erkennen von Symbolic Links und Junctions mit dir
dir
sehen Sie in der Spalte Typ für Links häufig Bezeichnungen wie <SYMLINK> oder <JUNCTION>. Dies weist darauf hin, dass es sich um einen Symbolic Link oder eine Junction handelt. Ein Beispiel:
15.06.2024 10:00 <SYMLINK> LinkZuDatei.txt 15.06.2024 10:05 <JUNCTION> LinkZuOrdnerUnterscheidung zwischen Symbolic Link und Junction
Der Unterschied zeigt sich in der Bezeichnung im dir-Befehl: Symbolic Links werden mit <SYMLINK> gekennzeichnet, während Junctions durch <JUNCTION> markiert werden. Zudem können Symbolic Links sowohl auf Dateien als auch auf Ordner zeigen, bei Junctions hingegen nur auf Ordner.
Erkennen von Hardlinks
Hardlinks sind schwieriger zu erkennen, da sie als normale Dateien erscheinen. Um herauszufinden, ob eine Datei mehrere Hardlinks besitzt, müssen Sie die Anzahl der Verweise (Link Count) auf die Datei anzeigen lassen. Hierfür kann der Befehl fsutil verwendet werden:
fsutil hardlink list Pfad\zur\DateiDieser Befehl listet alle Pfade auf, die auf dieselbe Datei verweisen (also alle Hardlinks). Wenn hier mehr als ein Eintrag ausgegeben wird, wissen Sie, dass es Hardlinks auf diese Datei gibt.
Alternativ zeigt der Befehl dir /r die Datenströme und möglicherweise vorhandene Hardlinks an, jedoch ist fsutil hardlink list die zuverlässigste Methode.
Zusammenfassung der Vorgehensweise
Wenn Sie in der Eingabeaufforderung schnell überprüfen wollen, um welche Art von Link es sich handelt, gehen Sie wie folgt vor:
Navigieren Sie in das Verzeichnis und führen Sie den Befehl dir aus. Dort sehen Sie bei Links entweder <SYMLINK>, <JUNCTION> oder keine besondere Kennzeichnung. Fehlt die Kennzeichnung, aber Sie vermuten einen Hardlink, verwenden Sie fsutil hardlink list, um alle Hardlink-Pfade anzuzeigen.
Auf diese Weise können Sie zuverlässig erkennen, ob eine Datei oder ein Ordner eine Junction, ein Symbolic Link oder ein Hardlink ist.