Hardlinks mit mklink /H unter Windows erstellen
Mit Hardlinks unter Windows kannst du eine Datei an mehreren Stellen sichtbar machen, ohne sie mehrfach auf der Festplatte zu speichern. Der Befehl dafür lautet mklink /H und ist besonders praktisch, wenn du mit festen Verknüpfungen, NTFS-Dateien und kleinen Admin-Tricks arbeitest.
Klingt erstmal nach einem Detail aus der Kategorie „braucht man nur alle drei Jahre“. Stimmt teilweise. Aber wenn du es brauchst, ist es ziemlich angenehm, wenn du nicht erst wieder suchen musst, wie die Syntax war.
💡 Was ist ein Hardlink?
Ein Hardlink ist keine normale Verknüpfung wie eine .lnk-Datei auf dem Desktop. Stattdessen bekommt dieselbe Datei einfach einen weiteren Dateinamen an einer anderen Stelle im Dateisystem.
Das bedeutet: Beide Pfade zeigen auf denselben Dateiinhalt. Änderst du die Datei über Pfad A, siehst du die Änderung auch über Pfad B. Windows behandelt beide Einträge wie echte Dateien. Genau das macht Hardlinks so nützlich – und manchmal auch ein kleines bisschen gefährlich, wenn man nicht weiß, was man da gerade tut.
Kurz gesagt
Ein Hardlink spart Speicherplatz, weil die Datei nicht kopiert wird. Du erzeugst nur einen zusätzlichen Verweis auf denselben Inhalt.
🧰 Hardlinks mit mklink erstellen
Der Befehl wird in der klassischen Eingabeaufforderung ausgeführt. Wichtig ist die Reihenfolge: Erst kommt der neue Hardlink, danach die vorhandene Quelldatei.
mklink /H "C:\Temp\hardlink.txt" "C:\Temp\quelle.txt"
Falls du den Befehl aus PowerShell heraus starten möchtest, kannst du einfach cmd /c davor setzen:
cmd /c mklink /H "C:\Temp\hardlink.txt" "C:\Temp\quelle.txt"
Danach existieren zwei Dateipfade, aber nur ein Dateiinhalt.
🧪 Kleiner Test auf dem Windows-Rechner
Ich habe das hier lokal einmal kurz getestet. Erst eine Datei erstellen, dann den Hardlink erzeugen:
mkdir C:\Temp\hardlink-test echo Hallo Hardlink > C:\Temp\hardlink-test\quelle.txt mklink /H C:\Temp\hardlink-test\hardlink.txt C:\Temp\hardlink-test\quelle.txt

Windows meldet danach, dass die feste Verknüpfung erstellt wurde. Schreibst du anschließend über den Hardlink in die Datei, ändert sich auch der Inhalt der Quelldatei:
echo Geaendert ueber Hardlink > C:\Temp\hardlink-test\hardlink.txt type C:\Temp\hardlink-test\quelle.txt

Bei meinem Test stand danach auch in der Quelldatei der neue Inhalt. Genau so soll es sein. Und ja, den Test-Hardlink habe ich danach wieder gelöscht. Man muss ja nicht alles im Temp-Ordner wohnen lassen.

🔍 Hardlinks anzeigen und prüfen
Wenn du sehen möchtest, welche Hardlinks zu einer Datei gehören, kannst du fsutil verwenden:
fsutil hardlink list C:\Temp\hardlink-test\quelle.txt

Damit bekommst du die bekannten Dateipfade zurück. Das ist praktisch, wenn du später nicht mehr sicher bist, ob eine Datei wirklich nur kopiert wurde oder ob ein Hardlink dahintersteckt.
📦 Wofür kann man Hardlinks brauchen?
Hardlinks sind nützlich, wenn dieselbe Datei an mehreren Stellen gebraucht wird, du aber keine echten Kopien pflegen möchtest. Ein paar typische Beispiele:
- Konfigurationsdateien, die in mehreren Ordnern erwartet werden
- große Dateien, die nicht doppelt Speicherplatz belegen sollen
- Testumgebungen, in denen du denselben Dateistand mehrfach referenzieren möchtest
- portable Tools oder Skripte, die an festen Pfaden nach Dateien suchen
- kleine Admin-Workarounds, bei denen eine normale Verknüpfung nicht akzeptiert wird
Der größte Vorteil ist klar: Du sparst Speicherplatz und musst nicht daran denken, mehrere Kopien synchron zu halten. Wenn du die Datei änderst, ist sie überall geändert. Das ist Fluch und Segen zugleich.
Wichtig zu wissen
Hardlinks funktionieren unter Windows nur für Dateien, nicht für Ordner. Außerdem müssen Quelle und Hardlink auf demselben Volume liegen. Von C: nach D: klappt das also nicht. Dafür wären je nach Zweck eher symbolische Links oder Junctions interessant.
Und noch ein Punkt: Wenn du einen Hardlink löschst, entfernst du nur diesen einen Dateieintrag. Der Dateiinhalt bleibt erhalten, solange noch mindestens ein weiterer Hardlink auf ihn zeigt.
🧹 Hardlink wieder löschen
Das Löschen ist angenehm unspektakulär. Du löschst einfach den Pfad, den du nicht mehr brauchst:
del C:\Temp\hardlink-test\hardlink.txt

Die ursprüngliche Datei bleibt dabei bestehen, sofern sie noch über einen anderen Pfad erreichbar ist. In meinem Test war genau das der Fall.
🧩 Fazit
mklink /H ist kein Befehl, den man jeden Tag braucht. Aber er ist ein sehr nützliches Werkzeug, wenn du Dateien mehrfach verfügbar machen möchtest, ohne Speicherplatz zu verschwenden oder Kopien aktuell halten zu müssen.
Solange du im Kopf behältst, dass alle Hardlinks auf denselben Inhalt zeigen, ist das eine saubere und einfache Lösung. Eben ein kleiner Windows-Trick, der im richtigen Moment richtig gut passt.
👥 Techniverse Community
Lust auf Austausch rund um Matrix, Selfhosting und andere smarte IT-Lösungen?
In der Techniverse Community triffst du Gleichgesinnte, kannst Fragen stellen oder einfach nerdigen Talk genießen. 🚀
👉 Jetzt der Gruppe auf Matrix beitreten
~ Direkte Raumadresse: #community:techniverse.net
👉 Für lockere Gespräche abseits der Kernthemen komm in den Talkraum
~ Direkte Raumadresse: #talk:techniverse.net
Wir freuen uns, wenn du dabei bist!


