TS: Mit cp ganze Verzeichnisbäume kopieren

Beitrag lesen

Hallo Leute,

ich habe das aus dem anderen Thread nochmal herausgeholt, weil es dort nicht hineingehört und ich das Thema gerne gesondert nochmal ansprechen möchte:

Wie kann ich mit cp alle Dateien eines Verzeichnisses kopieren (z.B. auf eine andere Platte), inclusive der versteckten, aber nur dann, wenn die Quelldatei neuer ist?

Jörg gab folgende Tipps:

cd /tmp
mkdir test
cd test
cp -au /home/ts ./
  • -a archive
  • -u nur neuere
  • /home/ts - Verzeichnis mit Inhalt - legt aber Verzeichnis an

Variante mit Trick:

cp -u /home/ts/* /home/ts/.* /tmp/test/

weitere, extrem vorteilhafte Variante:

rsync quelle ziel
  • kennt viele Optionen, geht auch über das Netz (ssh)

Ich habe den halben Nachmittag damit herumprobiert und gelesen. Aber es dtand nurt viel Mist im Netz, der leider nicht funktionierte.

cp hat die unangenehme Eigenschaft, dass es beim ersten Kopieren eines Verzeichnbisbaumes an eine andere Stelle funktioniert, beim zweiten Mal (wenn das Zielverzeichnis bereits vorhanden ist) aber leider den Verzeichnisbaum als Unterverzeichnis anlegt.
Die Aufgabe lautet

test -> test2

und nicht

test -> test2/test

Ich habe da nun eine Lösung, bei der mir aber nicht ganz wohl ist. Sie funbktioniert aber bisher und ich konnte keine Fehler feststellen. Wäre trotzdem schön, das nochmal zu diskutieren:

mkdir test2
cp -rauvt test2 test/.

Mit -t wird das Zielverzeichnis angegeben. Es werden nur die neuen Dateien kopiert, inclusive der versteckten. Das kann man beliebig oft wiederholen.

Tschüss
TS