Beeinflusst das Umbenennen die Änderung der Datei oder die Zugriffszeit? Gibt es irgendwo eine Liste, was sich zu welchen Zeiten ändert?
Beeinflusst das Umbenennen die Änderung der Datei oder die Zugriffszeit? Gibt es irgendwo eine Liste, was sich zu welchen Zeiten ändert?
Antworten:
Durch das Umbenennen wird die Änderungszeit aktualisiert:
$ mkdir tmp
$ cd tmp
$ echo abc > a
$ stat a
File: `a'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 26h/38d Inode: 5038682 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000 / zelda Gid: ( 1000/ zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:06:58.981107444 +0100
Birth: -
$ mv a b
$ stat b
File: `b'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 26h/38d Inode: 5038682 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ zelda) Gid: ( 1000/ zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:07:14.893238472 +0100
Birth: -
Die Zugriffszeit wird beim Lesen des Inhalts einer Datei aktualisiert. Ändern, wenn Sie die Datei tatsächlich aktualisieren (das Öffnen zur Änderung reicht nicht aus, um die Änderungszeit zu ändern).
cp
und mv
und vi
zum Bearbeiten verwendet. Andere Editoren oder Ihr Desktop bearbeiten die Aufgabe möglicherweise anders und aktualisieren mehr Zeitstempel.
mv
Eine Änderung, die sich auf die M-Zeit der Datei auswirkt, ist eine Änderung der Dateidaten: ein Schreiben mit einer Anzahl von Bytes ungleich Null oder eine Kürzung, die letztendlich die Datei ändert. Beim Erstellen einer Datei wird die Uhrzeit ebenfalls auf das aktuelle Datum gesetzt. Das bloße Öffnen einer Datei zum Schreiben wirkt sich nicht auf die Zeit aus, vorausgesetzt, die Datei wird nicht erstellt oder abgeschnitten.
Das Lesen aus einer Datei (wenn eine Anzahl von Bytes ungleich Null gelesen wird) oder das Ausführen einer Datei setzt ihre Zeit auf die aktuelle Zeit. Das bloße Öffnen einer Datei zum Lesen hat keinen Einfluss auf die Uhrzeit. Unter Linux ist dies jetzt in den meisten Fällen standardmäßig deaktiviert. Die atime
Mount-Option stellt zeitweise Aktualisierungen wieder her, während die noatime
Mount-Option sie vollständig deaktiviert.
Programme können die Uhrzeit und die Uhrzeit einer Datei ändern. Der grundlegende Befehl dazu ist touch
. Einige Dateikopierprogramme stellen die Kopie auf die gleiche Zeit wie das Original ein, z. B. cp -p
oder rsync -t
.
Eine Änderung, die sich auf die Uhrzeit der Datei auswirkt, ist eine Änderung der Metadaten der Datei: Berechtigungen, Eigentümer, Zeiten, Anzahl der Verknüpfungen usw. Durch das Umbenennen einer Datei wird auch ihre Uhrzeit aktualisiert. Änderungen der Dateidaten wirken sich auch auf die Uhrzeit aus, aber das Lesen aus einer Datei ändert die Uhrzeit nicht, auch wenn sich die Uhrzeit ändert. Es ist unmöglich, die ctime auf eine andere Weise zu ändern, als sie auf die aktuelle Zeit einzustellen (selbst root ist eingeschränkt, aber root kann die ctime indirekt einstellen, indem es zuerst die Systemzeit ändert oder direkt auf die Partition zugreift, die das Dateisystem enthält).
Eine zusätzliche empirische Beobachtung, die in den anderen Antworten nicht erwähnt wird:
Das Öffnen der Datei zum Schreiben mit O_TRUNC
ändert die Zeit, auch wenn die Datei ursprünglich leer war.
Dies scheint zumindest auf ext3 unter Linux 3.10 der Fall zu sein.