Durch Bearbeiten des Hardlinks wird die Originaldatei nicht bearbeitet

2

Ich habe eine Datei unter D:\JavaScript\CheckIban.jsund möchte sie an vielen Stellen wiederverwenden, ohne sie zu duplizieren. Denn wenn ich einen Fehler behebe (dessen Inhalt ändere), muss diese Änderung auf alle Dateien übertragen werden. Verwenden von Links Mein Plan ist es, eine Instanz der Hardlinks zu ändern und zu erwarten, dass andere Instanzen automatisch aktualisiert werden.

Angenommen, ich habe einen Hardlink zu dieser Datei erstellt.

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

und ich erhalte die Erfolgsmeldung, dass der Hardlink für ... 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.

Saeed Neamati
quelle
Verwenden Sie fsutil hardlink list D:\JavaScript\CheckIban.jsdiese Option, um zu überprüfen, ob der feste Link noch vorhanden ist.
Chirag Bhatia - Chirag64
@ Chirag64, ich habe diesen Befehl ausgeführt und nur die Datei selbst wurde aufgelistet. Was könnte falsch sein?
Saeed Neamati
Der Befehl ist korrekt. Sind Sie sicher, dass der ausgewählte Ordner korrekt ist? Ist der Zielordner nicht seltsam? Die Datei existiert noch nicht im Zielverzeichnis? Ein Berechtigungsproblem? Haben Sie versucht, den Befehl an einer Admin-Cmd-Eingabeaufforderung auszuführen?
Julian Knight
1
Eigentlich ist das Ziel kein Ordner, sondern eine Datei. Und ja, ich habe alles richtig gemacht. Datei existiert nicht (ich mache es manuell und lösche sie vor der Neuerstellung), keine Berechtigungsfrage, da ich admin bin und cmd mit Administratorrechten ausgeführt wird, sonst würde mklink Fehler auslösen.
Saeed Neamati
@ SaeedNeamati Hast du das jemals herausgefunden? Ich habe das gleiche dumme Problem ...
Nick Spreitzer

Antworten:

2

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

Es hängt also davon ab, wie das Programm, mit dem Sie die Datei ändern , beim Aktualisieren der Datei in das Dateisystem schreibt.

Siehe auch Welche Operationen unterbrechen die Hardlinks?

GlennFromIowa
quelle