Dateien/Ordner ab bestimmtem Datum kopieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mrserious
Beiträge: 266
Registriert: 22.06.2013 12:12:03

Dateien/Ordner ab bestimmtem Datum kopieren

Beitrag von mrserious » 29.09.2021 20:09:37

Hallo zusammen,

ich habe bereits zu find und bspw. "mtimt" etc. ein wenig gelesen.
Mein Anliegen ist ansich sehr einfach:
Ich habe einen Verzeichnispfad, z.B. "/data" aus dem ich alle Dateien kopieren möchte, die seit eines gewissen Datums geschrieben/verändert wurden.
Vmtl. ist es absolut trivial, aber: Wie bewerkstellige ich dies?

tobo
Beiträge: 1989
Registriert: 10.12.2008 10:51:41

Re: Dateien/Ordner ab bestimmtem Datum kopieren

Beitrag von tobo » 29.09.2021 20:56:53

Zum Beispiel so:

Code: Alles auswählen

find /data -type f -newermt "2021-01-23 12:34" -exec mv -t <DIR> {} +
Willst du nur ein Datum angeben, dann lass die Zeit einfach weg. Stört dich die "verdrehte" Form im mv, dann entdrehe, entferne den Schalter -t und benutze \; anstatt +. Ansonsten einfach Datum(/Zeit) und <DIR> anpassen.

EDIT:
Falls du mit kopieren, kopieren meinst und nicht wegkopieren, dann ersetze mv durch cp. Oder anders ausgedrückt: Ersetze mv durch cp...

mrserious
Beiträge: 266
Registriert: 22.06.2013 12:12:03

Re: Dateien/Ordner ab bestimmtem Datum kopieren

Beitrag von mrserious » 30.09.2021 19:36:22

Ah super :-)
Ich danke dir vielmals!

Kann man das so abwandeln, dass ich es über ein größeres Verzeichnis mit Unterordnern laufen lasse und diese erhalten bleiben?
Dass also nicht nur die losen Dateien kopiert werden, sondern ggfs. die Verzeichnisse gleich mit?
Das würde es einfacher machen, da die Ordnerstruktur erhalten bliebe.

tobo
Beiträge: 1989
Registriert: 10.12.2008 10:51:41

Re: Dateien/Ordner ab bestimmtem Datum kopieren

Beitrag von tobo » 30.09.2021 22:48:36

Geht auch (--parents erhält die Verzeichnisstruktur):

Code: Alles auswählen

find /data -type f -newermt "2021-01-23 12:34" -exec cp --parents -t <DIR> {} +
PS:
Sollen auch die u.a. Zeitstempel, der kopierten Dateien, erhalten werden, dann benötigt cp noch das (a)rchive-Flag (-exec cp --parents -at <DIR> {} +).

Antworten