ubuntuusers.de

nur die zuletzt geänderte Datei kopieren

Status: Gelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

Sebastian_S

Avatar von Sebastian_S

Anmeldungsdatum:
2. Mai 2006

Beiträge: 215

Wohnort: Oberursel

Hallo zusammen,

eine hoffentlich recht einfache frage an die Coder unter euch.

Ich benutzte TaskCoach auf der Arbeit und zuhause als ToDo liste.

Am Ubuntu Rechner kopiere ich mit rsync die TaskCoach Dateien auf die lokale Platte

rsync -avS -P /media/LEGEND/Documents/TaskCoach/* /home/user/Documents/TaskCoach

Da TaskCoach noch nicht so stabil ist habe ich es eingestellt, dass bei jedem Speichervorgang eine Backupdatei angelegt wird.

Nun möchte ich allerdings nur die zuletzt geänderte Datei zurück auch den USB Stick kopieren um sie auf der Arbeit weiter zu nutzen. Meine suche ergab das find mir helfen könnte aber ich weiß nicht so recht wie ich mit dem Ergebnis was kopieren kann. Außerdem gibt mir find mehr als eine Datei aus Gib's da nichts von rsynch?

$ find . *.tsk -mtime -1
.
./2009-07-11_to_do.tsk
./2009-07-11_to_do.20090712-230951.tsk.bak
./2009-07-11_to_do.20090712-225036.tsk.bak
2009-07-11_to_do.tsk

Hat jemand eine Idee? Danke schon mal.

pinguino

Avatar von pinguino

Anmeldungsdatum:
6. Februar 2007

Beiträge: 732

Wohnort: BW

TaskCoach speichert wahrscheinlich alle Daten auf einer Datei und wie ich sehe, sind Sicherungen auch dabei (*.bak) Das kannst du einfach mit Thunderbird (Mail Client) und der POP-Ordner vergleichen, wo du alle Emails hast. Möchtest du ein einziges Mail bearbeiten, dann brauchst du den ganzen Emailordner (Mail) und nicht eine einzige Datei. Das geht nicht so einfach. Du müßtest wissen, wo TaskCoach alle Daten speichert und nur diese Datei auf deinem Heimrechner kopieren, bearbeiten und dann zurück zur Arbeit die alte Datei überschreiben, wenn TaskCoach das überhaupt zulässt. Schaue, ob es ein TaskCoach-Forum gibt; schicke ein Email an den Coder.

plheisenstein

Anmeldungsdatum:
15. März 2009

Beiträge: 255

Du kannst die Dateien einfach kopieren:

find . *.tsk -mtime -1 -exec cp {} <Ziel> \;

oder mit rsync:

find . *.tsk -mtime -1 -exec rsync -av -R {} <Ziel> \;

Sebastian_S

(Themenstarter)
Avatar von Sebastian_S

Anmeldungsdatum:
2. Mai 2006

Beiträge: 215

Wohnort: Oberursel

pinguino schrieb:

TaskCoach speichert wahrscheinlich alle Daten auf einer Datei und wie ich sehe, sind Sicherungen auch dabei (*.bak)

Genau, alle tasks sind in der tsk Datei, die tsk.bak sind nur backups die beim speichern angelegt werden. Wie gesagt, TaskCoach stürzt noch hin und wieder ab :-/

@ plheisenstein

ich werds später probieren, danke schon mal

Sebastian_S

(Themenstarter)
Avatar von Sebastian_S

Anmeldungsdatum:
2. Mai 2006

Beiträge: 215

Wohnort: Oberursel

Zuerst, danke an die Helfer, ich habe jetzt

find /home/me/Documents/TaskCoach/*.tsk -mtime -1 -exec cp {} /media/LEGEND/Documents/TaskCoach/ \;

probiert und es funktioniert soweit als dass die am Tag der Ausführung geänderte Dateien kopiert werden.

Aus den mir gegebenen Beispielen habe ich gefolgert, dass '\;' am ende des Befehls benötigt wird, und in '{}' die gefundenen Dateien übergeben werden. Ist das korrekt?

Jetzt weiß ich aber nicht was ich machen soll, falls die letzte Änderung mehr als 24 Stunden vergangen ist. Außerdem werden auch 2 Dateien gefunden wenn beide 'heute' geändert wurden.

Ich habe auch mit

-mmin -5

oder so probiert aber das ist auch nicht genau was ich suche.

Ich will einfach nur die zuletzt geänderte Datei finden. Egal wann sie geändert wurde. Aber auch nur die zuletzt, nicht mehrere, nur eine...

plheisenstein

Anmeldungsdatum:
15. März 2009

Beiträge: 255

Aus den mir gegebenen Beispielen habe ich gefolgert, dass '\;' am ende des Befehls benötigt wird, und in '{}' die gefundenen Dateien übergeben werden. Ist das korrekt?

Stimmt "{}" enthält die jeweilige Datei (nicht die gefundenen Dateien)

Bzgl der mtime, das Prinzip ist folgendes:

-mtime 3 # findet alles, was zwischen 3 und 4 Tage alt ist

-mtime +3 # findet alles, was älter als 4 Tage ist

-mtime -3 # findet alles, was weniger als 3 Tage alt ist

Sebastian_S

(Themenstarter)
Avatar von Sebastian_S

Anmeldungsdatum:
2. Mai 2006

Beiträge: 215

Wohnort: Oberursel

plheisenstein schrieb:

Stimmt "{}" enthält die jeweilige Datei (nicht die gefundenen Dateien)

OK, für jede gefundene Datei einmal cp bitte... ☺

nun ich denke ich fahr mal mit

find /home/me/Documents/TaskCoach/*.tsk -mtime +0 -mtime -1 -exec cp {} /media/LEGEND/Documents/TaskCoach/ \;

laut http://www.softpanorama.org/Tools/Find/selecting_files_by_age.shtml soll man in skripten eher '-mtime +0 -mtime -1' machen, so verstehe ich es zumindest

Danke nochmal, over and out

Antworten |