Beim Bearbeiten des Hardlinks wird die Originaldatei nicht bearbeitet

1147
Saeed Neamati

Ich habe eine Datei an D:\JavaScript\CheckIban.jsund möchte sie an vielen Stellen wiederverwenden, ohne sie zu duplizieren. Wenn ich einen Fehler behebe (den Inhalt ändern), muss diese Änderung an alle Dateien weitergegeben werden. Durch die Verwendung von Links möchte ich eine Instanz der Hardlinks ändern und erwarten, dass andere Instanzen automatisch aktualisiert werden.

Nehmen wir an, ich habe einen Hardlink zu dieser Datei erstellt mit:

mklink /H D:\Projects\Crm\Site\Scripts\CheckIban.js D:\JavaScript\CheckIban.js

und ich erhalte die Erfolgsmeldung, für die der Hardlink erstellt wurde ...

Wenn ich jedoch jede Datei öffne und ändere, wird der Inhalt der anderen Datei nicht geändert. Was vermisse ich hier?

Hinweise: Ich kann keine Softlinks verwenden, da ich ein Programm (TFS) verwende, das das Arbeiten mit Softlinks nicht unterstützt.

1
Verwenden Sie `fsutil hardlink list D: \ JavaScript \ CheckIban.js`, um zu überprüfen, ob der Hardlink noch vorhanden ist. Chirag Bhatia - chirag64 vor 8 Jahren 0
@ Chirag64, ich habe diesen Befehl ausgeführt und nur die Datei selbst wurde aufgelistet. Was könnte falsch sein? Saeed Neamati vor 8 Jahren 0
Der Befehl ist korrekt. Sind Sie sicher, dass der von Ihnen gewählte Ordner korrekt ist? Es ist nichts Ungewöhnliches am Zielordner? Die Datei existiert noch nicht am Zielort? Eine Berechtigungsfrage? Haben Sie versucht, den Befehl über eine Admin-Cmd-Eingabeaufforderung auszuführen? Julian Knight vor 8 Jahren 0
Eigentlich ist das Ziel kein Ordner, sondern eine Datei. Und ja, ich habe alles richtig gemacht. Datei existiert nicht (ich mache sie manuell und lösche sie vor der Neuerstellung), kein Berechtigungsproblem, da ich admin bin und cmd mit Administratorrechten ausgeführt wird, andernfalls würde mklink einen Fehler auslösen. Saeed Neamati vor 8 Jahren 1
@SaeedNeamati Haben Sie das jemals herausgefunden? Ich habe das gleiche dumme Thema ... Nick Spreitzer vor 7 Jahren 0

1 Antwort auf die Frage

0
GlennFromIowa

Es gibt einen Unterschied zwischen dem Ändern der Datei und dem Ersetzen der Datei. Laut dieser Microsoft-Seite zu Hard Links und Junctions : "Alle Änderungen an dieser Datei sind sofort für Anwendungen sichtbar, die über die harten Links, auf die sie verweist, darauf zugreifen." Berücksichtigen Sie jedoch, was passiert, wenn Sie eine Datei ersetzen : Das Dateisystem löscht die Datei (in diesem Fall die feste Verknüpfung) und schreibt dann die neue Datei mit demselben Pfad und Dateinamen wie die vorherige feste Verknüpfung.

Es hängt also davon ab, wie das Programm, mit dem Sie die Datei ändern, in das Dateisystem schreibt, wenn sie die Datei aktualisiert.

Siehe auch Welche Operationen durchbrechen die Hardlinks