• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] modifikation time, time stamp

chappert

Hacker
Hallo

ich möchte gerne eine ältere Datei überschreiben, mit einer neueren, aber von der älteren Datei die creation time, time stamp usw. erhalten lassen

nochmal kurz...
Source = file soll kopiert werden aber ohne die creation time, time stamp zu überschreiben
Destination = Datei soll erstetzt werden aber ohne die creation time, time stamp usw. zu überschreiben

kann mir jemand helfen...

funktioniert nicht, weil genau anders herum, wie ich es haben möchte
cp -p
scp -p
 
A

Anonymous

Gast
chappert schrieb:
Source = file soll kopiert werden aber ohne die creation time, time stamp zu überschreiben
Destination = Datei soll erstetzt werden aber ohne die creation time, time stamp usw. zu überschreiben
Du hast ein Verständnisproblem mit der c-time. Dieser Zeitstempel heist richtig Change_Time und ist mit "normalen Mitteln" nicht kontrollierbar.
http://wiki.linux-club.de/opensuse/Zeitstempel_von_Dateien#Change_Time_.28ctime.29

robi
 
OP
C

chappert

Hacker
gute seite aber ich finde dennoch das es möglich sein muss die alte ctime zu erhalten auch wenn ich eine datei mit neuere ctime drüber kopiere, mag mir jetzt echt nicht die arbeit machen müssen nen script zu schreiben das die alte ctime ausliest und nachdem die datei koopiert wurde mit touch diese wieder zu setzen, dafür gibs doch bestimmt schon was oder nicht...
 
A

Anonymous

Gast
chappert schrieb:
das die alte ctime ausliest und nachdem die datei koopiert wurde mit touch diese wieder zu setzen, dafür gibs doch bestimmt schon was oder nicht...

ausprobieren oder nochmal genau lesen ;) diese Zeit lässt sich auch nicht mit touch auf einen anderen Wert als die aktuelle Zeit setzen. Natürlich kannst du die Systemzeit auf eine andere Zeit stellen und dann touch ausführen und danach die Systemzeit wieder auf die aktuelle Zeit einstellen. Anders geht es nicht. Auch die meisten (keines der typischen Standard) Backuptools können diese Zeit nicht wieder herstellen.

Ausnahmen bestätigen die Regel, aber das sind keinen Standard Befehle oder Standard Backup-Tools. Einzig mit Filesystemdebug-tools könnte man das standardmaßig machen, und das ist bestimmt nichts für jedermann und für Scripte wegen der Gefahren und Nebenwirkungen total ungeeignet.


Der touch-Befehl und viele andere Programme (auch tar) mit denen die Zeitstempel in den Inode manipuliert werden können, nutzen den Systembefehl utime dafür. Bei diesen Befehlen wird beim zurücksetzen der atime auf den alten Wert, die ctime zerstört und auf die aktuelle Zeit gesetzt. Das hat dann die Konsequenz, das nach einem Backup dann in diesem Verzeichnis zwar nach Dateien gesucht werden kann, auf die lange nicht zugegriffen wurde, aber nicht mehr nach Dateiengesucht werden kann, bei denen in der letzten Zeit die ctime verändert wurde. Auch kann mit solchen Backupprogrammen nur die atime und die mtime der Dateien wieder hergestellt werden, die ctime wird auf eine Zeit des Zurückspielens der Sicherung gesetzt.


robi
 
A

Anonymous

Gast
chappert schrieb:
und was wird jetzt bei dem befehl "ls -l" angezeigt die a,m oder ctime????

im Normalfall immer die m-time. Die anderen sind auch möglich, wie stehe in Manpage.

robi
 
A

Anonymous

Gast
chappert schrieb:
und die option -r gibs gar nicht so wie es auf der seite steht
von welchem Befehl redest du ????

Beim Überschreiben direkt ? sieht es da wohl schlecht aus mit dem Erhalten des alten Zeitstempels. Ansonsten währe es ja ein Ändern des Dateiinhaltes ohne Ändererung des Zeitstempels, das darf es so nicht geben. Also währen beim direkten Überschreiben einer Datei immer ein anschließenderer touch auf die alte Zeit notwendig, also ein winziges Scriptchen oder so was. Möglich das es mit rsync funktioniert, :???: (währe dennoch sonderbar, aber man weiß ja nie) diesen Befehl kenne ich jedoch nur sehr oberflächlich, damit arbeite ich auch nicht, und kann das jetzt hier im Moment zwecks Mangels eines vernünftigen LINUX auch nicht austesten.


robi
 
OP
C

chappert

Hacker
ein winzigen scriptchen??? naja ich weis ja nicht aber ich bin schon die ganze zeit am grübel wie ich das am besten per script realisiere, den in wirklichkeit mein ich ja nicht nur eine datei sonder eine ganze Verzeichnisstrucktur ca. 35GB an Daten und des muss ja alles automatisch passieren hrhr

mit -r meinte ich touch...
 
A

Anonymous

Gast
Mangage schrieb:
-r, --reference=FILE
use this file's times instead of current time
Das sollte schon funktionieren, aber wie gesagt, ich hab hier jetzt gerade kein Linux, mein einziges funktionierendes Linux läuft im Moment nur virtual in meinem Kopf ab, und ein kleines DSL habe ich noch hier, aber das sind alles nur kastrierte Befehle.

Wegen des Scriptes, wenn du mal etwas näher beschreibst was genau gemacht werden soll, dann kann ich dir heute abend was zusammenscripten. Auf einer einzigen Zeile geht schon ne ganze Menge und oftmals beteiligen sich hier noch mehrere auch in den verschiedensten Programmier/Script Sprachen an der Entwicklung solcher Scripte, das ist immer eine willkommene Abwechslung vom Forumsalltag und machmal entsteht sogar einen kleiner Wettkampf um die Beste Lösung ;) ;) ;)

robi
 
Oben