... hm, wer will denn eine Datei ändern, ohne dass sich das Änderungsdatum ändert?
Das scheint mir doch eher ein "Spezialfall" zu sein, als umgekehrt. Beim Änderungsdatum möchte man doch - wie der Name schon impliziert - sehen, wann man die Datei zum letzten Mal "angepackt", also geändert hat.
Wenn das nach einer Umbenennung nicht ersichtlich ist, kommt mir das zumindest ein bisschen seltsam vor.
Aber, man muss ja auch nicht alles verstehen ...
man kann das aber alles verstehen, wenn man die Grundlagen dazu kennt:
macOS kennt wie viele Unixoide Systeme mehrere Zeitstempel für Dateien
- create time = Erzeugungszeitpunt
- access time = letzter Zugriff
- change time = letzte Änderung
- modification time = letzte Modifzierung
Der Unterschied zwischen change und modified ist, dass change auch den Änderungen des Dateinamens betrifft, modified sich auf Änderungen des Inhaltes beschränkt.
Im Terminal kannst du alles sehr einfach nachvollziehen
1) lege eine Datei test.txt an
lass dir das Verzeichnis in Lang-Form anzeigen um den Zeitstempel zu sehen
Bash:
l
>ls -l test.txt
-rw-r--r-- 1 xxxx staff 6 3 Jan 15:28 test.txt
Das zeigt dir die modified time an, die bei der Erzeugung natürlich identisch mit der create time ist. Dazu später mehr.
Ändere nun die Datei mit
Bash:
echo "Wieder hallo" >> test.txt
und lass dir sie mit ls -l anzeigen
Code:
ls -l test.txt
-rw-r--r-- 1 simone staff 19 3 Jan 15:30 test.txt
du siehst die Zeit der letzten Modifikation des Inhaltes.
Andere nun den Dateiname und lasse dir das wiederum mit ls -l anzeigen
Bash:
mv test.txt neu.txt
>ls -l neu.txt
-rw-r--r-- 1 xxxx staff 19 3 Jan 15:30 neu.txt
Du erkennst das die modified time = Zeit der letzten Modifikation (des Inhaltes) unverändert blieb. Wenn du dir aber die change time anzeigen lässt
Bash:
ls -lc neu.txt
-rw-r--r-- 1 simone staff 19 3 Jan 15:33 neu.txt
siehst du den Zeitpunkt der letzten Änderung auch des Dateinamens.
Nun kannst du dir aber auch weiterhin den Zeitpunkt der Dateierzeugung = create time anzeigen lassen.
Bash:
ls -lU neu.txt
-rw-r--r-- 1 xxxx staff 19 3 Jan 15:28 neu.txt
Wenn du nun die Datei mit TextEdit öffnest und _ohne_ sie zu ändern und ohne umzubenennen sie wieder schließt, bleiben alle bisherigen Zeitstempel identisch, aber die access time = Zeit des letzten Zugriffs (auf den Inhalt) wird aktualisiert. Die access time erhälst du mit ls -lu
Code:
>ls -l neu.txt
-rw-r--r--@ 1 xxxx staff 19 3 Jan 15:30 neu.txt
>ls -lc neu.txt
-rw-r--r--@ 1 xxxx staff 19 3 Jan 15:42 neu.txt
>ls -lU neu.txt
-rw-r--r--@ 1 xxxx staff 19 3 Jan 15:28 neu.txt
>ls -lu neu.txt
-rw-r--r--@ 1 xxxx staff 19 3 Jan 15:42 neu.txt
Du siehst also, es werden durchaus alle Zeitstempel vermerkt. Du musst also nur für deine Synchronisation die korrekten Zeitstempel verwenden.
Edit:
TextEdit ändert die Datei dennoch, darum wird die change time ebenso geändert. Warum, kann ich gerade nur vermuten, dürfte AFAICS an erweiterten Attributen liegen.
Edit 2:
Okay. APFS handhabt access time anders und updated diese nur unter bestimmten Umständen (wenn älter als change time). Das hat einen ähnlichen Effekte, wie das was man eh mit SSD machen sollte, nämlich unnötige Schreibzyklen zu reduzieren. Und jeden Lesezugriff mitzuloggen in der access time ist durchaus nicht notwendig. ->
https://apple.stackexchange.com/questions/441754/how-does-file-access-time-updating-work-on-macos