gerry56
Goto Top

Probleme mit Hardlink

Hallo und einen schönen Sonntag.

Ich habe ein Problem mit der Funktion Hardlink.

ich möchte einige Dateien in mehreren Verzeichnissen aufrufen können.
Da bei Änderungen der ersten Datei auch die Dateien an den anderen Standorten gleich mitverändert werden sollen, kann ich die Datei nicht in alle Verzeichnisse kopieren.
Dafür gibt es ja den Befehl mklink oder LN

Es gibt Probleme, wenn ich den Hardlink mit dem Tool LN erzeuge.
befehl DLN.exe "D:\DoppelteDateien\Quelldatei.rtf" "D:\neue-DoppelDateien\test\Zieldatei.rtf".
Es funktioniert aber auch nicht, wenn ich den Befehl mklink verwende
Befehl mklink /H "D:\neue-DoppelDateien\test\Zieldatei.rtf" "D:\DoppelteDateien\Quelldatei.rtf"

In beiden Fällen wird die Zieldatei erzeugt.
Der Befehl LN.exe --enum "D:\DoppelteDateien\ zeigt mir auch an daß es für die beiden Dateieneinen Hardlink gibt.

Verändere ich jedoch die Zieldatei, bleibt die Quelldatei unverändert.
Verändere ich die Quelldatei, bleibt die Zieldatei unverändert.

Ich habe es mit dem Windows eigenen Tool fsutil versucht. Auch hier der gleiche Nichtfunktionseffekt.

Wieso funktioniert der hardlink nicht?

Laptop Acer Aspire 5250 mit Windows 7 64Bit.

Bitte um Problemlösung
Danke im voraus

Content-ID: 7868646359

Url: https://administrator.de/contentid/7868646359

Ausgedruckt am: 18.11.2024 um 09:11 Uhr

Lochkartenstanzer
Lochkartenstanzer 16.07.2023 aktualisiert um 16:56:37 Uhr
Goto Top
Zitat von @gerry56:

Verändere ich jedoch die Zieldatei, bleibt die Quelldatei unverändert.
Verändere ich die Quelldatei, bleibt die Zieldatei unverändert.

Moin,

Leider hast Du uns nicht verraten, womit Du die Datei änderst. Meine Kristallkugel sagt aber, daß, wenn es, wie die Endung rtf vermuten läßt mit einem "Wordprocessor" ist, daß es ganz einfach daran liegt, daß der Editor die alte Datei umbenennt, eine neue Datei erstellt und danach die alte Datei und damit den Hardlink löscht.

Somit hast Du wieder zwei getrennte Dateien.

lks

PS: Wenn Du es testen willst, ob hardlinks bei Dir generell funktionieren

  • Erzeuge eine Datei original.txt
    echo >original.txt "Originaltext"
  • Verlinke diese Datei mit kopie.txt mit einer Deiner obigen Methoden.
  • prüfe den Inhalt von kopie.txt
    type original.txt kopie.txt
  • ändere den inhalt von kopie.txt mit
     echo >Kopie.txt "geänderte Kopie"
  • Prüfe den inhalt von original.txt und kopie.txt
    type original.txt kopie.txt
  • ändere den inhalt von original.txt mit
     echo >original.txt "geändertes Original"
  • Prüfe den inhalt von original.txt und kopie.txt
    type original.txt kopie.txt
  • "ändere mit den Programm mit dem Du Deien rtf-datei geändert hast eine dieser dateien.
  • Prüfe den inhalt von original.txt und kopie.txt
    type original.txt kopie.txt

Wenn Du die verlinkung korrekt gemacht hast, sollte sich jedesmal der Inhalt beider Dateien ändern.

lks
Dani
Dani 16.07.2023 aktualisiert um 18:52:00 Uhr
Goto Top
Moin,
Befehl mklink /H "D:\neue-DoppelDateien\test\Zieldatei.rtf" "D:\DoppelteDateien\Quelldatei.rtf"
funktioniert bei mir.

Verändere ich jedoch die Zieldatei, bleibt die Quelldatei unverändert.
Geht bei mir.

Verändere ich die Quelldatei, bleibt die Zieldatei unverändert.
Geht bei mir.

Laptop Acer Aspire 5250 mit Windows 7 64Bit.
OS aktualisieren?!


Gruß,
Dani
Lochkartenstanzer
Lochkartenstanzer 16.07.2023 um 18:54:55 Uhr
Goto Top
Zitat von @Dani:

Verändere ich jedoch die Zieldatei, bleibt die Quelldatei unverändert.
Geht bei mir.

s.o.


Verändere ich die Quelldatei, bleibt die Zieldatei unverändert.
Geht bei mir.

s.o.

Laptop Acer Aspire 5250 mit Windows 7 64Bit.
OS aktualisieren?!

Liegt sicher nicht am OS sondern am PEBKAC, face-smile

lks
gerry56
gerry56 16.07.2023 um 21:48:29 Uhr
Goto Top
Ich verändere die Datei mit Word für Windows.
Mit diesem Programm wurde die Datei auch erstellt.

Ich habe in der Zwischenzeit das Ganze auch mit Windows 10 auf dem Stand-PC versucht.
Mit Win-10 ist es noch schlimmer, da der Befehl LN.exe --enum "D:\DoppelteDateien\" keinen Hardlink findet.
Wie auf dem PC bleibt die Originaldatei unverändert, wenn die Hardlinkdatei verändert wird.
Wird die Originaldatei verändert, so bleibt die Hardlinkdatei unverändert.
Lochkartenstanzer
Lösung Lochkartenstanzer 16.07.2023 um 21:53:28 Uhr
Goto Top
Zitat von @gerry56:

Ich verändere die Datei mit Word für Windows.

Word entfernt den Hsrdlink beim Abspeichern, so wie ich es oben geschildert habe.

lks
gerry56
gerry56 16.07.2023 aktualisiert um 22:56:32 Uhr
Goto Top
Hallo Lochkartenstanzer.

Danke für den aufklärenden Hinweis.
Diese Info habe ich bisher nirgends gefunden.
Der test mit txt-Dateien funktioniert einwandfrei.

Das bedeutet aber auch, daß ein hardlink nicht für alle Dateiformate geeignet ist.
Gibt es eventuell irgendwo eine Aufstellung, welche Programme unerwünscht einen Hardlink löschen / auflösen?
Oder gibt es eine Möglichkeit, den Hardlink zu schützen, und Word (bzw. anderen Programmen) die Hardlinklöschung zu unterbinden?
Gerry
Lochkartenstanzer
Lochkartenstanzer 17.07.2023 aktualisiert um 08:47:16 Uhr
Goto Top
Zitat von @gerry56:

Hallo Lochkartenstanzer.

Danke für den aufklärenden Hinweis.
Diese Info habe ich bisher nirgends gefunden.

Diese Info muß man auch nirgendwo finden, das kann man aus der Arbeitsweise von Textverarbeitungen/Wordprozessoren und der Funktionsweise von Hardlinks selbst ableiten.

Der test mit txt-Dateien funktioniert einwandfrei.

War zu erwarten


Das bedeutet aber auch, daß ein hardlink nicht für alle Dateiformate geeignet ist.

Doch Hardlinks sind für alle Dateiformate geeignet. Du kannst nur nicht mit jeder Anwendung die Dateien so bearbeiten, daß die Hardlinks erhalten bleiben. Die richtigere Aussage wäre: Nicht jede hart verlinkte Datei kann mit jeder Anwendung so geändert werden, daß der Hardlink erhalten bleibt.

Gibt es eventuell irgendwo eine Aufstellung, welche Programme unerwünscht einen Hardlink löschen / auflösen?

Nein. Du muß schauen, wie die Anwendung arbeitet. Sofern diese immer die Originaldatei ändert, bleibt der hardlink erhalten. Sofern die Anwendung die alte Datei umbenennt (z.B. blabla.doc in ~blabla.doc) und eine neue Datei erzeugt, ist halt die "alte Datei" noch mit dem Hardlink verknüpft und nicht die neu erzeugte. Und die meisten Wordprozessoren (aka textverarbeitungen) arbeiten so. Und zwar, damit ein "undo" immer möglich ist.

Oder gibt es eine Möglichkeit, den Hardlink zu schützen, und Word (bzw. anderen Programmen) die Hardlinklöschung zu unterbinden?

Was willst Du da unterbinden? Die löschen ja nur die "alte Datei" und erstellen eine neue. Damit ist derHhardlink auf jeden Fall immer futsch.

Du mußt halt eine Anwendung nehmen, wie z.B. sed, vi, emacs, oder edit.exe (aus doszeiten) die direkt auf der "Originaldatei" arbeiten und nicht mit Kopien.

Oder Du überdenkst nochmal Deine Arbeitsprozesse.

lks

PS: Gibt es irgendeinen Grund, warum Du Hardlinks und keine Softlinks nimmst? Die sollte da doch auf jeden Fall funktionieren. Sag jetzt aber nicht,, "weil hardlinks cooler sind"!
gerry56
gerry56 17.07.2023 um 14:37:41 Uhr
Goto Top
Hallo Lochkartenstanzer.

Du hast natürlich Recht, wenn du schreibst, daß ein Hardlink für jede Dateiart geeignet ist.
Jedoch gibt es Anwendungen, die Dateien so verändern, daß der Hardlink nicht erhalten bleibt.

Beim Test mit Win-10 habe ich einen Fehler gemacht.
ich habe beim Suchbefehl "LN.exe --enum D:\DoppelteDateien" irrtümlich einen abschließenden \ eingegeben. Aus diesem Grund wurden die Hardlinks nicht gefunden.

Der Grund, weshalb ich Hardlinks verwende und keine Softlinks ist einfach.
Wird bei einem Hardlink die sogenannte Originaldatei verschoben oder gelöscht, bleiben alle hart verlinkten Zieldateien erhalten. Der Grund ist, daß nur ein Inodeeintrag gelöscht wird.
Wird jedoch bei einem Softlink die Originaldatei verschoben oder gelöscht, bleiben die Softlinkeinträge zwar erhalten, laufen aber ins Nirwana.
Aus diesem Grund sind mir Hardlinks lieber als Softlinks

Gerry
Lochkartenstanzer
Lochkartenstanzer 17.07.2023 um 14:41:07 Uhr
Goto Top
Zitat von @gerry56:

Aus diesem Grund sind mir Hardlinks lieber als Softlinks

Das muß man vom Anwendungsfall abhängig machen. In Deinem obigen Fall wären solflinks geeigneter.

lks
gerry56
gerry56 19.07.2023 um 12:06:11 Uhr
Goto Top
Dann werde ich als Test mit den häufigsten Anwendungen Dateien erstellen.
Danach werde ich für alle Dateien einen Hardlink erstellen und alle zuerst erstellten Dateien nachbearbeiten.
Ich bin neugierig, wie viele Dateien nach der Nachbearbeitung den Hardlink behalten haben.

Anschießend kann ich für jene Dateien, die den Hardlink behalten haben, einen hardlink erstellen. Für die anderen werde ich einen Softlink erstellen müssen.

Danke für die wichtige Info und Hilfe
Gerry
Dani
Dani 21.07.2023 um 17:19:32 Uhr
Goto Top
Moin,
könnte eine Lösung sein, dass du nicht die Dateien verlinkst sondern den jeweiligen Ordner? Dann dürfte z.B. Word davon nicht merken.


Gruß,
Dani
gerry56
gerry56 22.07.2023 um 16:02:22 Uhr
Goto Top
Hallo Dani!

Danke für deine Anregung.
Das mache ich sowieso schon, wenn ich die Dateiinhalte eines Verzeichnisses in einem anderen Verzeichnis haben möchte.
Nur ist dabei zu beachten, daß das löschen einer Datei und das hinzufügen einer Datei dann in beiden Verzeichnissen durchgeführt wird.

Oft es es jedoch so, daß nur eine einzelne Datei oder einige wenige Dateien eines Verzeichnisses in einem anderen Verzeichnis zusätzlich angezeigt werden sollen.
Es kann auch sein, daß mehrere Dateien aus verschiedenen Verzeichnissen zusätzlich in einem anderen Verzeichnis angezeigt werden sollen.
In solch einem Fall ist der Hardlink für ein ganzes Verzeichnis leider kein Lösungsvorschlag.

Ich habe schon einige Anwendungen getestet.
Adobe Acrobat, Win-Editor (Notepad), Paintlöschen keine Hardlinks
Leider löschen Excel, Adobe Photoshop und Word die Hardlinks.
Für Dateien, die nicht mit Excel, Word oder Ohotoshop bearbeitet werden, werde ich Hardlinks erstellen.
Für die anderen Dateien werden entweder hardlinks für ganze Verzeichnisse erstellt, oder Softlinks erstellt.

Gerry