Wie kann ich das Erstellungs-Datum einer Datei manipulieren?
Wie kann ich das Erstellungs-Datum einer Datei manipulieren?
Ich habe hier ein kleines Problem mit einem alten blog von mir. Die posts wurden als txt Dateien abgespeichert. Das Datum wird aus den Dateiattributen (heisst das so?) geholt. In der Datei gibt es also kein hinterlegtes Datum.
Ich habe ein anderes Blog das läuft mit MySQL. Ich kann die einzelnen Posts als txt Dateien exportieren, aber das Datum wäre für alle Dateien das heutige Tagesdatum.
Gibt es einen Weg um händisch das Datum auf das Erstellungsdatum des Posts zu ändern? Es sind nur ca. 80 Dateien die ich rüberholen wollte, also denke ich es man kann es von Hand korrigieren. Mit einem kleinen script wäre es natürlich schneller getan.
Wie stelle ich das an?
Ich habe ein anderes Blog das läuft mit MySQL. Ich kann die einzelnen Posts als txt Dateien exportieren, aber das Datum wäre für alle Dateien das heutige Tagesdatum.
Gibt es einen Weg um händisch das Datum auf das Erstellungsdatum des Posts zu ändern? Es sind nur ca. 80 Dateien die ich rüberholen wollte, also denke ich es man kann es von Hand korrigieren. Mit einem kleinen script wäre es natürlich schneller getan.
Wie stelle ich das an?
- blueflidge
- Beiträge: 1414
- Registriert: 31.01.2005 10:16:49
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: bei Bonn
Das dürfte mit touch gehen.
Siehe dazu die man-page und:
https://www.debianforum.de/forum/viewtopic.php?t=91143
Alternativ kann auch krename [1] das, was du möchtest.
[1] http://www.krename.net/
Siehe dazu die man-page und:
https://www.debianforum.de/forum/viewtopic.php?t=91143
Alternativ kann auch krename [1] das, was du möchtest.
[1] http://www.krename.net/
- deadeye
- Beiträge: 561
- Registriert: 14.04.2004 15:32:18
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ukio, rechts hinterm Feld
-
Kontaktdaten:
Code: Alles auswählen
man touch
Code: Alles auswählen
touch -m -t $stamp $file
deadeye
Edit: Schade, zu langsam .
Ok, touch macht das Rennen. krename ist doch zu viele klicks.
Leider lässt sich das Datum der Erzeugung nicht ändern.
Leider lässt sich das Datum der Erzeugung nicht ändern.
touch 1.txt
setzt alles auf Tageszeit des touch ändert das Datum für (erzeugt, geändert, zugegriffen)
touch -t 8001031305 1.txt
ändert (geändert, zugegriffen) 13:05 Januar 3, 1980
touch -a 8001031305 1.txt
ändert (zugegriffen)
- deadeye
- Beiträge: 561
- Registriert: 14.04.2004 15:32:18
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ukio, rechts hinterm Feld
-
Kontaktdaten:
Linux(oder wenigstens das FS ext2/3) kennt:
atime - access time, lesender Zugriff
ctime - change time, Änderung an den Dateiattributen(und alles was nich Inhalt ist)
mtime - modify time, Änderungen am Inhalt
Zurück zum Prob: in der Tat scheint touch nicht die ctime ändern zu können.
Wenn man den Onkel Google nach "change ctime linux" fragt, ist die erste Antwort schon sehr aufschlussreich: ohne das Systemdatum zu ändern oder tief im Dateisystem rumzupfuschen geht es nicht.
Mein Tipp: schreib die Blog-Software um, sodass sie mtime statt ctime ausließt.
atime - access time, lesender Zugriff
ctime - change time, Änderung an den Dateiattributen(und alles was nich Inhalt ist)
mtime - modify time, Änderungen am Inhalt
Zurück zum Prob: in der Tat scheint touch nicht die ctime ändern zu können.
Wenn man den Onkel Google nach "change ctime linux" fragt, ist die erste Antwort schon sehr aufschlussreich: ohne das Systemdatum zu ändern oder tief im Dateisystem rumzupfuschen geht es nicht.
Mein Tipp: schreib die Blog-Software um, sodass sie mtime statt ctime ausließt.
Das funktioniert schon, etwa mit debugfs aus dem Paket e2fsprogs.deadeye hat geschrieben:Wenn man den Onkel Google nach "change ctime linux" fragt, ist die erste Antwort schon sehr aufschlussreich: ohne das Systemdatum zu ändern oder tief im Dateisystem rumzupfuschen geht es nicht.
Ich zeige mal das Vorgehen an einem Beispiel unter Etch und einem ext3-Dateisystem:
Anlegen eines Test-Verzeichnisses und einer Test-Datei:
Code: Alles auswählen
mkdir /ctime_test
echo "blabla" > /ctime_test/test_file
Code: Alles auswählen
stat /ctime_test/test_file
Das Dateisystem mit debugfs im read-write Modus öffnen (hier /dev/sda3):File: „/ctime_test/test_file“
(...)
Access: 2007-10-24 13:52:09.000000000 +0000
Modify: 2007-10-24 13:52:09.000000000 +0000
Change: 2007-10-24 13:52:09.000000000 +0000
Code: Alles auswählen
debugfs -w /dev/sda3
Code: Alles auswählen
show_inode_info /ctime_test/test_file
Dann die ctime ändern, hier auf 2. Januar 2007 03:04:05ctime: 0x471f4e09 -- Wed Oct 24 13:52:09 2007
atime: 0x471f4e09 -- Wed Oct 24 13:52:09 2007
mtime: 0x471f4e09 -- Wed Oct 24 13:52:09 2007
Code: Alles auswählen
set_inode_field /ctime_test/test_file ctime 20070102030405
Code: Alles auswählen
show_inode_info /ctime_test/test_file
debugfs verlassen:ctime: 0x4599cba5 -- Tue Jan 2 03:04:05 2007
atime: 0x471f4e09 -- Wed Oct 24 13:52:09 2007
mtime: 0x471f4e09 -- Wed Oct 24 13:52:09 2007
Code: Alles auswählen
q
Code: Alles auswählen
stat /ctime_test/test_file
Nach einem Neustart von Debian (bzw. neu mounten) zeigt stat dann die neue ctime an:File: „/ctime_test/test_file“
(...)
Access: 2007-10-24 13:52:09.000000000 +0000
Modify: 2007-10-24 13:52:09.000000000 +0000
Change: 2007-10-24 13:52:09.000000000 +0000
File: „/ctime_test/test_file“
(...)
Access: 2007-10-24 13:52:09.000000000 +0000
Modify: 2007-10-24 13:52:09.000000000 +0000
Change: 2007-01-02 03:04:05.000000000 +0000
Gruß,
Daniel
edit: debugfs befindet sich im Paket e2fsprogs
Zuletzt geändert von Danielx am 25.10.2007 00:32:23, insgesamt 1-mal geändert.
Ja, das kann je nach Fähigkeiten durchaus sein.deadeye hat geschrieben:ich finde mein Vorschlag die Blog-Software abzuändern geht schneller
AndreK hat aber, wenn ich das richtig verstanden habe, danach gefragt wie man die ctime ("Erzeugung") einer Datei ändern kann.
Ich hoffe mal er kann mit unseren Tipps etwas anfangen.
Gruß,
Daniel
- habakug
- Moderator
- Beiträge: 4314
- Registriert: 23.10.2004 13:08:41
- Lizenz eigener Beiträge: MIT Lizenz
Hallo!
Wie in den meisten Fällen gibt es ein Programm dafür [1].
Gruß, habakug
[1] http://www.hacker-soft.net/tools/Assessment/touch2v2.c
Wie in den meisten Fällen gibt es ein Programm dafür [1].
Gruß, habakug
[1] http://www.hacker-soft.net/tools/Assessment/touch2v2.c
hi,
naja, Systemzeit verstellen kann ja jeder, dazu brauch ich kein Programm.
Außer, das Programm könnte jeglichen Task-Wechsel unterbinden, aber
das kann es nicht (jedenfalls nicht dieses).
Oder ist es nur ein Gerücht, daß Programme wie Bildschirmschoner oder
cron oder ntpd mit rückwärtslaufenden Uhren Probleme haben?
naja, Systemzeit verstellen kann ja jeder, dazu brauch ich kein Programm.
Außer, das Programm könnte jeglichen Task-Wechsel unterbinden, aber
das kann es nicht (jedenfalls nicht dieses).
Oder ist es nur ein Gerücht, daß Programme wie Bildschirmschoner oder
cron oder ntpd mit rückwärtslaufenden Uhren Probleme haben?
Beware of programmers who carry screwdrivers.
Ja, genau.cosmac hat geschrieben:naja, Systemzeit verstellen kann ja jeder, dazu brauch ich kein Programm.
Gibt es denn ein solches Programm?cosmac hat geschrieben:Außer, das Programm könnte jeglichen Task-Wechsel unterbinden, aber
das kann es nicht (jedenfalls nicht dieses).
Ist es beim Preemptivem Scheduling überhaupt möglich einen Kontextwechsel zu verhindern, außer im Kernel selbst?
Ob es sich dabei nur um ein Gerücht handelt, weiß ich leider auch nicht.cosmac hat geschrieben:Oder ist es nur ein Gerücht, daß Programme wie Bildschirmschoner oder
cron oder ntpd mit rückwärtslaufenden Uhren Probleme haben?
Gruß,
Daniel
natürlich geht's nur im Kernel selbst. Man braucht einen System Call,Danielx hat geschrieben:Ist es beim Preemptivem Scheduling überhaupt möglich einen Kontextwechsel zu verhindern, außer im Kernel selbst?
mit dem das Programm diesen Zustand anfordert und wieder freigibt.
Allerdings müsste es einen Time-Out geben, nur wie lang soll der sein?
Funktioniert der überhaupt, wenn mittendrin die Uhr verstellt wird?
auf jeden Fall werden sämtliche Zeitstempel in Logfiles und von allenDanielx hat geschrieben:Ob es sich dabei nur um ein Gerücht handelt, weiß ich leider auch nicht.cosmac hat geschrieben:Oder ist es nur ein Gerücht, daß Programme wie Bildschirmschoner oder
cron oder ntpd mit rückwärtslaufenden Uhren Probleme haben?
Dateizugriffen verfälscht. Ich hätte sogar Bedenken, daß im Kernel
selbst was durcheinander kommt.
Beware of programmers who carry screwdrivers.