Ich habe eine Datei unter D:\JavaScript\CheckIban.js
und 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.
fsutil hardlink list D:\JavaScript\CheckIban.js
diese Option, um zu überprüfen, ob der feste Link noch vorhanden ist.Antworten:
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?
quelle