Hi,
gibt es einen Parameter für cp, mit dem man beim kopieren von Verzeichnissen nur bestimmte Dateitypen mitkopiert? Also wenn ich jetzt zum Beispiel einen Ordner mit .sh und .bin Dateien hab und will, dass nur die .sh Dateien kopiert werden...
MfG
Anmeldungsdatum: Beiträge: 56 Wohnort: Erfurt |
Hi, gibt es einen Parameter für cp, mit dem man beim kopieren von Verzeichnissen nur bestimmte Dateitypen mitkopiert? Also wenn ich jetzt zum Beispiel einen Ordner mit .sh und .bin Dateien hab und will, dass nur die .sh Dateien kopiert werden... MfG |
Anmeldungsdatum: Beiträge: 9130 |
Hallo, das sollte doch mit den Jokerzeichen * und ? gehen. Also z.B. *.bin für alle .bin-Dateien. Gruß |
Anmeldungsdatum: Beiträge: 1903 Wohnort: Würselen |
Meinst du das rekursiv? Die einfachste Lösung für diese Aufgabe über alle Unterverzeichnisse eines Verzeichnisses hinweg wäre (meine ich) mit rsync: rsync -avz --include "*/" --include "*.typ" --exclude "*" srcPfad/ tgtPfad
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 Wohnort: Erfurt |
Danke, so funktioniert es! Gibt es auch ein Möglichkeit, die Dateien mit rsync zu verschieben?
So hatte ich es mir auch vorgestellt, aber wie gibt man das in einem Parameter an? |
Anmeldungsdatum: Beiträge: 1903 Wohnort: Würselen |
honki hat geschrieben:
Nicht das ich wüsste, aber wenn du die Dateien rekursiv löschen möchtest geht das zum Beispiel so: find srcPfad -name "*.typ" -print0 | xargs -0 rm honki hat geschrieben:
Wie meinst du das? Wenn du keine Unterverzeichnisse hast kannst du, wenn du Dateien eines bestimmten Typs verschieben willst einfach durch: mv srcPfad/*.typ tgtPfad
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 Wohnort: Erfurt |
Also erstmal danke für deine Antworten: rsync -avz --include "*/" --include "*.typ" --exclude "*" srcPfad/ tgtPfad && find srcPfad -name "*.typ" -print0 | xargs -0 rm
Ich versuch nochmal zu erklären, wie ich mir das vorstelle: Ich habe zum Beispiel folgende Verzeichnissstruktur: Und möchte es dann so haben: Also im Prinzip soll ein bestimmter Dateityp rekursiv verschoben werden. Mit mmv ist das glaub ich nicht möglich. Immerhin hab ich dank dir jetzt eine Möglichkeit, wie es geht (auch wenn es ein bischen umständlich ist)... Edit: #!/bin/bash clear SRCDIR= TRGDIR= FILETYP= echo "Quellverzeichnis: " read SRCDIR echo "" echo "Zielverzeichnis: " read TRGDIR echo "" echo "Dateityp: " read FILETYP echo "" rsync -avz --include "*/" --include "*.$FILETYP" --exclude "*" $SRCDIR $TRGDIR find $SRCDIR -name "*.$FILETYP" -print0 | xargs -0 rm |
Anmeldungsdatum: Beiträge: 1903 Wohnort: Würselen |
Hi, recmv srcdir tgtdir "*.typ"
#!/bin/bash #script recmv, zum recursiven Verschieben von Dateien eines Typs if [ $# -lt 3 ] ; then echo "recmv, Verwendung:" echo 'recmv srcdir tgtdir "muster"' echo "Verschiebt rekursiv alle Dateien auf die muster passt, sowie alle Unterverzeichnisse" echo "aus dem Verzeichnis srcdir in das Verzeichnis tgtdir." exit 1 fi echo "Verschiebe $3 aus $1 in $2:" rsync -avz --include "*/" --include "$3" --exclude "*" $1 $2 find $1 -name "$3" -print0 | xargs -0 rm
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 56 Wohnort: Erfurt |
Danke schön ☺ (Das vorhin war mein erster Versuch, überhaupt erstmal ein lauffähiges Skript hinzubekommen ☺ ) |
Anmeldungsdatum: Beiträge: 1903 Wohnort: Würselen |
So, jetzt ist es auch im Wiki drin: programmierung:skripte:rekursives_kopieren_verschieben_von_dateien |