Ist es möglich, eine Datei zu haben, deren Änderungsdatum vor dem Erstellungsdatum liegt? Welche Aktionen würden dieses Ereignis verursachen?
metadata
file-attributes
AlexanderRD
quelle
quelle
Antworten:
Betrachten Sie ein extrahiertes .tar-Archiv. In der Regel wird den extrahierten Dateien ein Zeitstempel für die letzte Änderung aus dem Archivinhalt zugewiesen (was normalerweise in der Vergangenheit liegt, es sei denn, Sie sind Zeitreisender). Was das Dateisystem betrifft, wurden diese Dateien jedoch gerade erstellt.
Es gibt auch Dienstprogramme zum Ändern der Änderungszeit vorhandener Dateien. Unter Linux ist dies beispielsweise der Befehl touch .
quelle
cp -p
und Dinge, die sie imitieren, wiercp -p
undscp -p
, sowiersync
mit-t
oder-a
, nimmt die Modtime von der Quelle.Wenn Sie eine Datei von Grund auf neu erstellen, wird die Erstellungszeit "jetzt" und das Änderungsdatum "jetzt" angezeigt. Stellen Sie sich nun vor, Sie kopieren diese Datei auf ein anderes Laufwerk. Windows behält die Änderungszeit bei, aber die Erstellungszeit dieser Datei wird auf den Zeitpunkt festgelegt, zu dem Sie die Datei auf dieses Laufwerk kopiert haben (dh den Zeitpunkt, zu dem die Datei auf diesem Laufwerk erstellt wurde). So einfach ist das.
Es ist eigentlich richtig:
quelle
Unter Windows ist es sehr einfach, die Erstellungs- und Änderungszeiten einer Datei festzulegen (wenn Sie so wollen, zu verfälschen). Sie müssen die Uhr des Computers nicht ändern. Sie benötigen nicht einmal lokalen Administratorzugriff. Sie benötigen lediglich Schreibzugriff auf die betreffende Datei.
So legen Sie die Erstellungszeit einer Datei mit PowerShell fest
SetCreationTime
:So stellen Sie die zuletzt geänderte Zeit ein
SetLastWriteTime
:Unter Linux können Sie die zuletzt geänderte Zeit einer Datei einfach mit dem
-d
Flag von änderntouch
, wie in dieser Antwort von Ubuntu gezeigt . Es gibt eigentlich keine Vorstellung von einem Erstellungsdatum für Dateien auf Linux-Dateisystemen ( weiterführende Literatur unter Unix & Linux ).quelle
Ja. Nehmen Sie unter Windows eine Änderung an der Datei vor und speichern Sie sie. Kopieren Sie nun die Datei. Wenn Sie sich die Eigenschaften der Kopie ansehen, werden Sie feststellen, dass sie ein früheres Änderungsdatum hat.
quelle
Das Wichtigste dabei ist, dass die Änderungszeit von Dateien nichts Besonderes ist - sie wird wie alle anderen Daten gespeichert. Es ist nicht zu erkennen, wann Daten tatsächlich zuletzt geschrieben oder gelesen wurden.
Von hier aus können wir sehen, dass es immer möglich ist (ausgenommen einmal beschreibbare Medien wie eine CD), die Bits auf einem Laufwerk, auf dem die zuletzt geänderte Zeit oder sogar die Erstellungszeit gespeichert ist, direkt zu ändern.
In der Praxis ist dies auch innerhalb gängiger Betriebssysteme möglich, wie andere Antworten festgestellt haben. Unter Windows wird dies von der WinAPI-
SetFileTime
Funktion bereitgestellt , und Sie können dies unterutime
Linux tun . Tools wietouch
bauen auf diesen APIs auf.Die häufigste legitime Verwendung für diese APIs besteht darin, die Änderungszeit beizubehalten, z. B. beim Kopieren von Dateien, Extrahieren aus Archiven usw.
quelle
Nach meiner Erfahrung wurde ein oder mehrere Computer zum Ändern der Datei verwendet, und einer von ihnen hat die falsche Systemzeit. Die drei häufigsten Ursachen dafür, dass die Systemzeit in keiner bestimmten Reihenfolge falsch ist, sind:
quelle