Dateien kopieren
Zitat von JzHartmut am 26. März 2026, 15:06 UhrHm, Ähm, habe nur mal überblicklich gelesen. Aber: Früher (unter Unix) war es grundsätzlich so, dass eine erzeugte Datei immer den aktuellen Zeitstempel bekommt. Punkt alle aus. Eine kopierte Datei ist auch erzeugt. Warum das damals immer so war, Vermutung, man hat viel auf 'make' gesetzt und make richtet sich nach dem Datum. Gemaket wird wenn das Datum der Source neuer ist als die des Generates (des Object-Files bei C-Compilierung, der Executable). Und wenn von irgendwo in die source hin kopiert wird, muss gemaket werden, also das kopierte als "neuer" gekennzeichnet. Ich habe mal (auch ein Weilchen her) ein Forum gelesen, bei dem sich Linus Torvalds höchstpersönlich sich sehr vehement eingesetzt hat dafür, dies beizubehalten.
Bei DOS (dann Windows) war das grundsätzlich anders, kopierte Dateien haben den Zeitstempel der ursprünglichen Datei bekommen.
Langsam hat das dann gebröckelt. Dafür dass Windows den Slash als Pfadtrenner mehr und mehr akzeptiert hat, hat der cp Befehl die Option --preserve=timestamp bekommen, damit sich 'cp' so wie windows-copy verhält. Das ist immer noch so, cp erzeugt bei der Kopie das aktuelle Datum als Datum des letzten Schreibzugriffs, --preserve=timestamp setzt das Datum des Schreibzugriffs auf das der Quelle. Getestet eben in Debian 13.
Diese lange Beschreibung soll also die Denkweise und Historie erläutern.
Nun ist es also ganz logisch, dass im langen Weg des Kopierens über NAT und Fritzbox usw. irgendwo das Datum des Schreibzugriffs der Files eben verloren geht. Bei Windows nicht, weil dort die Denkweise ist "Datum erhalten", bei Linux schon.
Abhilfe ist touch verwenden, oben in Antworten kurz erwähnt. Aber jede einzelne Datei manuell korrigieren? Ist wohl nicht sinnvoll machbar.
Da ich auch beim git dieses Problem sehe, habe ich irgendwann mal geschrieben, gemacht, und täglich benutzt: https://vishia.org/SwEng/html/restoreTimestampsInSrc.html
Habe eben in diesen Link reingeschaut, am Ende steht "…TODO explain more." schon seit einigen Jahren.
Wer explained habe will, melde sich einfach bei mir info (at) vishia.de, dann explaine ich das mal (in Englisch), bei netter Anfrage auch in deutsch.
Hartmut Schorrig
Hm, Ähm, habe nur mal überblicklich gelesen. Aber: Früher (unter Unix) war es grundsätzlich so, dass eine erzeugte Datei immer den aktuellen Zeitstempel bekommt. Punkt alle aus. Eine kopierte Datei ist auch erzeugt. Warum das damals immer so war, Vermutung, man hat viel auf 'make' gesetzt und make richtet sich nach dem Datum. Gemaket wird wenn das Datum der Source neuer ist als die des Generates (des Object-Files bei C-Compilierung, der Executable). Und wenn von irgendwo in die source hin kopiert wird, muss gemaket werden, also das kopierte als "neuer" gekennzeichnet. Ich habe mal (auch ein Weilchen her) ein Forum gelesen, bei dem sich Linus Torvalds höchstpersönlich sich sehr vehement eingesetzt hat dafür, dies beizubehalten.
Bei DOS (dann Windows) war das grundsätzlich anders, kopierte Dateien haben den Zeitstempel der ursprünglichen Datei bekommen.
Langsam hat das dann gebröckelt. Dafür dass Windows den Slash als Pfadtrenner mehr und mehr akzeptiert hat, hat der cp Befehl die Option --preserve=timestamp bekommen, damit sich 'cp' so wie windows-copy verhält. Das ist immer noch so, cp erzeugt bei der Kopie das aktuelle Datum als Datum des letzten Schreibzugriffs, --preserve=timestamp setzt das Datum des Schreibzugriffs auf das der Quelle. Getestet eben in Debian 13.
Diese lange Beschreibung soll also die Denkweise und Historie erläutern.
Nun ist es also ganz logisch, dass im langen Weg des Kopierens über NAT und Fritzbox usw. irgendwo das Datum des Schreibzugriffs der Files eben verloren geht. Bei Windows nicht, weil dort die Denkweise ist "Datum erhalten", bei Linux schon.
Abhilfe ist touch verwenden, oben in Antworten kurz erwähnt. Aber jede einzelne Datei manuell korrigieren? Ist wohl nicht sinnvoll machbar.
Da ich auch beim git dieses Problem sehe, habe ich irgendwann mal geschrieben, gemacht, und täglich benutzt: https://vishia.org/SwEng/html/restoreTimestampsInSrc.html
Habe eben in diesen Link reingeschaut, am Ende steht "…TODO explain more." schon seit einigen Jahren.
Wer explained habe will, melde sich einfach bei mir info (at) vishia.de, dann explaine ich das mal (in Englisch), bei netter Anfrage auch in deutsch.
Hartmut Schorrig