Hardlinks, Symbolic Links: NTFS-Dateiverknüpfungen unter Windows 7

Darstellung von NTFS-Links am Beispiel einer JunctionNTFS bietet, wie unter Unix/Linux gebräuchliche Dateisysteme auch, Links auf Dateien oder Verzeichnisse, also salopp gesagt die Möglichkeit, ein- und dieselbe Datei (oder Verzeichnis) über unterschiedliche Pfade und Dateinamen anzusprechen. Das System macht davon seit Vista ausführlich Gebrauch, indem es etwa die Standard-Pfade für Programme oder Benutzerdatei nicht in der Windows-Installationssprache anlegt, wie dies noch bis Windows 2003/XP der Fall war, sondern auf Englisch.

Die Installationssprache sorgt dann über Links dafür, dass man sie auch über die jeweils in der eingestellten Sprache üblichen Namen adressieren kann. Als Sonderfall wird auch für englischsprachige Windows-7-Installationen das herkömmliche \Documents and Settings durch einen Link ersetzt, der auf \Users zeigt.

Link ist nicht gleich Link: Je nachdem, ob man es mit einem symbolischen oder einem symbolischen oder festen (harten) Link zu tun hat, werden sie im Dateisystem unterschiedlich abgelegt. Auch der Umgang mit ihnen und ihre Reaktion auf Datei-Operationen unterscheiden sich. Egal hingegen ist, ob man von Dateien oder Verzeichnissen spricht. Im Folgenden sind deshalb stets auch Verzeichnisse gemeint, wenn von Dateien die Rede ist.

Symbolische Links

Symbolische Links ähneln den Verknüpfungen im Startmenü oder auf dem Desktop, nur dass sie sich auf der Ebene des Dateisystems befinden. Physisch handelt es sich um Dateisystemobjekte, die einen Zeiger enthalten, deren Inhalt auf die Originaldatei verweist. Das hat Konsequenzen beim Umgang mit den Dateien: Wird das Original umbenannt, verschoben oder gelöscht, läuft der Link ins Leere.

Für Anwendungen schaut dies in solchen Fällen nach einem Dateisystemfehler aus oder nach einer Datei, die im Moment ihres Aufrufes entfernt wurde. Es ist also nicht ratsam, symbolische Links etwa in Arbeitsverzeichnissen von Projekten zu verwenden, in denen sich oft etwas ändert. Für die Wurzel eines solchen Arbeits­verzeichnisses hingegen ist ein symbolischer Link gut geeignet, etwa wenn es aus Platzgründen physisch umziehen muss, für die Benutzer und Filesharing-Dienste aber noch am alten Ort zu finden sein soll.

Windows kennzeichnet symbolische Links im Explorer mit einem Verknüpfungspfeil. Auf Kommandozeilenebene in einer Eingabeaufforderung sind verknüpfte Dateien mit ‹SYMLINK› gekennzeichnet, verknüpfte Verzeichnisse mit ‹SYMLINKD›. Dahinter steht in eckigen Klammern die Datei, auf die der Link verweist.

Verzeichnisverbindungen (Junctions)

Darstellung von NTFS-Links am Beispiel einer JunctionEine Sonderform symbolischer Verknüpfungen sind Verzeichnisverbindungen (Junctions). Es sind symbolische Links, die es unter NTFS nur für Verzeichnisse gibt. Es gab sie schon unter Windows 2003/XP. Sie besitzen eine andere interne Verarbeitung, bei der der Inhalt des per Link aufgerufenen Verzeichnisses erst am Ziel aufgelöst wird. Dadurch verursachen sie etwas weniger Overhead.

Das Ziel von Verzeichnisverbindungen kann nur absolut, nicht relativ gespeichert werden. Auch sie sind im Explorer mit einem Verknüpfungspfeil gekennzeichnet, in der Eingabeaufforderung mit ‹VERBINDUNG› respektive ‹JUNCTION›. Die oben beschriebenen Anpassungen der Verzeichnisnamen unter Windows 7 zur Beibehaltung der Rückwärts­kompatibilität werden jeweils per Verzeichnisverbindung gelöst, die allerdings versteckt sind.

Feste Links (Hardlinks)

Feste Links sind Dateien oder Verzeichnisse, die mehr als einen Eintrag in der Master File Table von NTFS besitzen. Demzufolge können feste Links nur auf dem gleichen Volume die gleiche Datei bezeichnen, für Volume-übergreifende Verweise muss man symbolische Links verwenden. Es gibt hier keine Original-Dateien oder Verweise auf diese; die verschiedenen Links sind untereinander gleichberechtigt. Man kann also bereits die erste Namensinstanz einer Datei als festen Link (mit dem Zähler 1 als Sonderfall) auf sie bezeichnen.

Die Verschiebung oder Umbenennung eines festen Links beeinflusst die anderen nicht. Physisch gelöscht ist eine Datei jeweils erst dann, wenn der letzte ihrer festen Links gelöscht, der Zähler also wieder auf 0 steht.

Feste Links sind weder im Explorer noch anderweitig zu erkennen. Für Dateisystem­bearbeitungs­werkzeuge ist per se nicht zu erkennen, ob es für eine bestimmte dargestellte Datei noch andere Pfad- und Dateinamen gibt.

Links verwenden und bearbeiten

Für die Verwaltung der Links stellt Windows das Kommandozeilentool mklink.exe zur Verfügung. Es muss innerhalb einer Eingabeaufforderung mit Administratorrechten ausgeführt werden.

4 Kommentare

Bild von David Rees-Clark
David Rees-Clark (Besucher) sagt:

Mir ist aufgefallen, dass Hardlinks bei Office 2010 Dokumenten nicht funktionieren.
Office erstellt bei geöffneten Dokumenten eine temporäre Datei (im Dateisystem erkennbar an der Datei mit der vorgestellten Tilde), und beim Abspeichern eines in Office 2010 geöffneten Hardlinks wird effektiv eine neue Kopie an dem Pfad erstellt und der Hardlink ist futsch.

Alle anderen bisher von mir getesteten Dateitypen funktionieren wie gewünscht: Ich nehme Änderungen am Hardlink vor, und auch die "Originaldatei" ist verändert (schließlich handelt es sich ja um die gleiche Datei).

Dies nur als Hinweis. Ich dachte nämlich selbst, dass bei mir die Hardlinks nicht funktionieren, bis ich ein wenig rumexperimentierte.

Grüße!

Bild von Rudi Thilo
Rudi Thilo (Besucher) sagt:

Das liegt an der bescheuerten Art, wie Microsoft Office (schon seit den Versionen zu Zeiten von Windows für Workgroups 3.xx) mit Dateien umgeht, wenn sie "bearbeitet" werden:

Step 1: Datei wird geöffnet:
-> Orginaldatei wird in den temporären Dateinamen umkopiert, die Orginaldatei wird gesperrt
Step 2: Arbeiten im offenen Dokument:
In der TMP Kopie wird gearbeitet, gearbeitet, gespeichert, gearbeitet

Step 3: Dokument schließen mit Speichern läuft in 3 Unterschritten:

Step 3a: Die "Arbeitskopie" wird unter dem "TMP-Dateinamen" gespeichert
Step 3b: Die Orginaldatei wird geschlossen & *GELÖSCHT* (end-dämlich idiotisch!)
Step 3c: Die TMP Datei wird in die Orginaldatei umbenannt, das ist also eine komplett *NEUE* Datei, die deshalb absolut nichts mehr mit dem Orginal-File zu tun hat.

Daraus ergibt sich zwangsläufig, dass der Hardlink futsch ist, futsch sein muss. Microsoft Schrott by Design!

Bild von Mark
Mark (Besucher) sagt:

Ich empfehle daher Libre Office:
- Weniger Preis (0,00€)
- Dateien werden überschrieben, nicht neu erstellt
- OpenSource (Quelloffen)

Bild von TimM
TimM (Besucher) sagt:

Du hast den wichtigsten Punkt vergessen:
- 100%ige Kompatibilität mit dem Standard MS Office, sprich Formatierungen und Layout wird beibehalten [/Ironie Ende]
Immer diese "OpenSourceistsupertollundvielbesseralsMS"-Pusher...

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht angezeigt. Wenn mit Ihrer angegebenen Mail-Adresse ein Gravatar verknüpft ist, dann wird dieser neben Ihrem Kommentar eingeblendet.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Mail-Adressen werden im Seitenquelltext unkenntlich gemacht, um sie vor dem automatischen Erfassen durch Spammer zu schützen.

Weitere Informationen über Formatierungsoptionen