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

Eigenheiten von find und tar

radlwadl

Newbie
Hallo,

mein ursprüngliches Problem passt mehr in das Backup und Sicherheit Forum, aber letztlich ist es doch ein Konsolen-Problem. Gegoogelt habe ich schon mehrere Stunden, auch hier las ich schon mehrere Threads, aber leider wurde bin ich noch nicht schlauer.

Ich möchte mehrere Directories per find, tar und ssh von einem Rechner zu einem anderen bringen.
Im Beispiel hier könnte ich es auch mit tar --exclude machen, da es aber an sich um das Ausschließen verschiedener .Files (Dotfiles) geht, mache ich es mittels find --wholename

Inhalt des Dirs ist:
Code:
fs1/test> ls
a  b  c  foo  foo2

Folgendermassen möchte ich foo und foo2 ausschliessen
Code:
> find . -wholename './foo' -prune -o -wholename './foo2' -prune -o -print 
.
./a
./b
./c

Auf den anderen Rechner möchte ich es folgendermassen bringen:
Code:
> find . -wholename './foo' -prune -o -wholename './foo2' -prune -o -exec tar cf - {} \; | ssh 192.168.178.21 "cd Tmp/test && tar xvf - "
Password:
./
./a
./b
./c
./foo
./foo2

Es werden also alle Files vom tar eingepackt. Das ist mir insofern unklar, als dass ein -exec echo {} \; lediglich die Files a, b, c auswirft.

Auf die Eigenheiten von find ... -exec tar {} \; bin ich bei meiner Recherche schon gestossen. Da gings aber immer darum, dass nur das letzte File/Dir im Archiv stand. Über
find ...|tar -T- -c |ssh ... habe ich es auch getestet - gleiches Ergebnis.

Könnt Ihr mir bitte weiterhelfen? Ich möchte verstehen, was da abgeht.
Danke und Grüße,
Radlwadl
 

regexer

Advanced Hacker
radlwadl schrieb:
Das ist mir insofern unklar, als dass ein -exec echo {} \; lediglich die Files a, b, c auswirft.
... und auch das aktuelle Verzeichnis (der Punkt in der ersten Zeile der find-Ausgabe). Und wenn tar das aktuelle Verzeichnis sichern soll, dann tut er das auch ;)
 
Oben