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

Dateien-Erstellungsdatum wiederherstellen

gnuad

Newbie
Hallo an alle,

ich habe folgendes problem. ich habe mir meine daten von einer festplatte auf die andere kopiert und dabei leider vergessen dass ich auf das Erstellungsdatum rücksicht nehme. Nun hab ich seither auch schon einiges mit den daten gearbeitet. Was ich nun suche ist eine möglichkeit diese Attribute (ctime (??) ) zurückzuschreiben aber nur bei jenen Daten die sich nicht geändert haben. Wenn ich die Daten einfach wieder rüberkopierte dann würde ich ja geänderte Daten überschreiben und dass will ich nicht.
Kennt da jemand eine einfache Idee?
Danke für jede hilfe, martin
 
A

Anonymous

Gast
gnuad schrieb:
Was ich nun suche ist eine möglichkeit diese Attribute (ctime (??) ) zurückzuschreiben aber nur bei jenen Daten die sich nicht geändert haben.

Bei der c-time wirst du dich ziemlich schwer tun diese anders als auf den derzeit aktuellen Zeit zu setzten. (nicht unmöglich, aber so nicht vorgesehen) siehe auch http://wiki.linux-club.de/opensuse/Zeitstempel_von_Dateien. Die a- und die m-time könnte man mit touch setzen wenn man immer genau wüßte auf welche Zeit. Größere Datenmengen könnte man eventuell mittels eines alten Backup auf die alten Zeitenstempel setzen, soweit sich nicht geändert wurden.
Also mit einfachen Möglichkeiten wird die c-time nichts, außer du ziehst in Betracht die Zeit des Rechners für jede Änderung einer Datei umzustellen. Für was brauchst du denn die Zeitstempel der letzte Änderung an den Daten der Inode ???? Um was für Dateien handelt es sich überhaupt? Selbst erstellte ? oder Dateien die du mittels Paketen installiert hast??? Bei Paket-installierten sollte es auch einige Tricks geben.

robi
 

regexer

Advanced Hacker
gnuad schrieb:
ich habe mir meine daten von einer festplatte auf die andere kopiert ... Was ich nun suche ist eine möglichkeit diese Attribute (ctime (??) ) zurückzuschreiben
Was war denn das Quell- bzw. das Ziel-Dateisystem? ctime hat für den Benutzer bei den gängigen Linux-Dateisystemen sowieso wenig Aussagekraft. Meist geht man in der täglichen Arbeit nach der mtime (modification time). Das ist auch die Standard-Ausgabe von ls -t...
 
OP
G

gnuad

Newbie
Hallo,

Danke für die Antworten!

Ich wusste den unterschied zwischen a-c-m-time vorher nicht so genau. Es stimmt natürlich dass ich nicht die c Time ändern will sondern die m-time ändern.
Touch macht das ganze auch, allerdings habe ich zuviele Daten um das händisch zu machen.
Die Daten sind meine eigenen Nutzerdaten (Dokumente, Bilder, ...).

Mir sind meine ursprünglichen Dateien verloren gegangen. Habe dann einfach mittels cp befehl von meiner Sicherung die Daten zurückgespielt und war glücklich und hab weiter gearbeitet. Jetzt sehe ich aber dass die m-time bei meinen neuen Daten nicht mit den ursprünglichen (von der Sicherung, da hab ich nämlich die richtige m-time) übereinstimmen (weil durch das cp sie verändert wurden). Nur hab ich leider seither auch schon wieder viele Dateien bearbeitet (und haben daher einen neuen mtime-timestamp). Ich will nun noch die alten Dateien (also jene die gleich sind mit der Sicherung) den mtime nachträglich automatisch umstellen.
Kann mir da jemand helfen, touch macht das auch, aber leider nur händisch und das ist ein wenig viel arbeit bei 1000+ Dateien

Liebe Grüße,
Martin
 

spoensche

Moderator
Teammitglied
Das kannst du doch bequem per Script machen.

Code:
for file in $(find /pfad/zu/deinem/verzeichnis)
  do
      touch -mt deinezeit $file
done

Müsste so gehen, wenn ich mich nicht irre.
 
A

Anonymous

Gast
um auf die alte orginal m-Time zu kommen würde ich aus dem Backup alle Dateien die sich seit dem einspielen des damaligen Backups noch nicht geändert haben noch einmal mit den jetzt aber richigen Optionen überbügeln. Ein bisschen riskant aber das Backup hat ja schon mal funktioniert ;) Nur wird das bei dir eventuell zeitlich gesehen kein eindeutiges Zeitfenster geben, nach dem du die Dateien als geändert ansehen kannst, kann also durchaus etwas knifflig werden auf der Komandozeile.

Im Zweifelsfall kann man ein Script schreiben. etwa so hier.
Aus Backup alle Dateiname1 und Zeitstempel1 ziehen
Aus Platte Dateiname2 und Zeitstempel2
Ist Dateiname2 in Liste der Dateinamen1 vorhanden und
Zeitstempel2 älter= Rückspielzeitende dann touch Zeitstempel1

robi
 
Oben