*.txt rekursiv kopieren

Hallo,
wie kann ich denn Dateien mit bestimmten Endungen rekursiv kopieren/verschieben?
„cp -r *.txt“ funktioniert nicht.
Grüße
K.

Hallo,

in der Bash kopierst du hiermit rekursiv alle *.txt Dateien nach /tmp:

for i in find . -name *.txt; do cp $i /tmp/; done;

Vielleicht kennt hier jemand noch eine elegantere Variante.

Gruß,
Uwe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo uwe,

for i in find . -name *.txt; do cp $i /tmp/; done;

Vielleicht kennt hier jemand noch eine elegantere Variante.

Wenn Du schon find nimmst, kannst Du das natürlich auch mit exec verknüpfen, also

find . -name "\*.txt" -exec cp \{\} /tmp \;

für die Kommandozeile.
Als eleganter würde ich das nun auch nicht bezeichnen, zumal das ganze Projekt eh den Schönheitsfehler in sich trägt, daß die Datei /home/kb/verz1/verz2/mein.txt dann die Datei /home/kb/verz1/mein.txt überschreibt.
Insofern bin ich mir nicht sicher, ob ich überhaupt richtig verstanden habe, was Klaus genau möchte.

Viele Grüße
Marvin

Hallo,

wie kann ich denn Dateien mit bestimmten Endungen rekursiv
kopieren/verschieben?
„cp -r *.txt“ funktioniert nicht.

Du musst noch ein Ziel angeben:

cp -r \*.txt zielordner/

Grüße,
Moritz

Hallo Moritz,

wie kann ich denn Dateien mit bestimmten Endungen rekursiv
kopieren/verschieben?
„cp -r *.txt“ funktioniert nicht.

Du musst noch ein Ziel angeben:

cp -r *.txt zielordner/

Das ist richtig, aber ich denke, er meint mit rekursiv, daß auch die Dateien *.txt aus den Unterordnern kopiert werden sollen. Und das funktioniert so, trotz -r, nicht. Aber wie ich schon gesagt habe, bin ich mir nicht sicher, was Klaus genau will. Aber vielleicht erklärt er sich noch mal genauer.

Viele Grüße
Marvin

Hallo,

Ziel war, alle *.txt-Dateien aus einem bestimmten Ordner (und von dort, alle Ebenen abwärts) in EINEN (anderen) Ordner zu kopieren.
Das doppelte Dateinamen sich gegenseitig überschreiben war erstmal egal.
Ich wusste nicht ob es einen direkten, „einfachen“ Befehl wie „cp -r *.txt /ordner/“ gibt.
Die Schleife mit „find + for“ erfüllt jedenfalls die Zwecke und da ließe sich ja noch was gegen das Überschreiben einbauen.

Danke allen für die Antworten.
Grüße
K.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]