Bestimmte Dateien aus einer Ordnerstruktur verschieben

M

marebel

Neues Mitglied
Thread Starter
Dabei seit
01.11.2005
Beiträge
5
Reaktionspunkte
0
Hallo!

Ich möchte gerne bestimmte Dateien aus einer bestehenden Ordnerstruktur in eine andere Ordnerstruktur verschieben, welche prinzipiell identisch aufgebaut ist.

Beispiel: Falls PDF-Dokumente in den Unterordnern von Ordner1 enthalten sind, sollen diese in entsprechende (namensgleiche) Unterordner von Ordner2 verschoben werden - die (Unter-)Ordnerstruktur von Ordner2 besteht dabei bereits.

Ordner1/Unterordner1/*.pdf > Ordner2/Unterordner1/
Ordner1/Unterordner2/*.pdf > Ordner2/Unterordner2/
Ordner1/Unterordner3/*.pdf > Ordner2/Unterordner3/
usw.

Da ich nach ausgiebiger Recherche im Internet bisher leider keine Lösung gefunden habe, wende ich mich nun an Euch, in der Hoffnung, dass mir hier jemand einen Tipp geben kann, wie ich das im Terminal bewerkstelligt bekomme ...

Vielen Dank im Voraus :)!

Marc
 
Code:
Martins-MacBook-Pro:~ martin$ find tmp1
tmp1
tmp1/1
tmp1/1/1.pdf
tmp1/1/1.txt
tmp1/2
tmp1/2/2.pdf
tmp1/2/2.txt
tmp1/3
tmp1/3/3.pdf
tmp1/3/3.txt
Martins-MacBook-Pro:~ martin$ find tmp2
tmp2
tmp2/1
tmp2/2
tmp2/3
Martins-MacBook-Pro:~ martin$ for i in $(find tmp1 -name "*.pdf" | cut -d'/' -f 2,3); do cp -p tmp1/${i} tmp2/${i}; done
Martins-MacBook-Pro:~ martin$ find tmp2
tmp2
tmp2/1
tmp2/1/1.pdf
tmp2/2
tmp2/2/2.pdf
tmp2/3
tmp2/3/3.pdf
Martins-MacBook-Pro:~ martin$

Du musst den cut natürlich entsprechend deiner Pfadtiefe anpassen, ggf. brauchst du andere Felder als 2&3.
 
Hallo mj,

vielen Dank für die schnelle Antwort :)!

Test folgt ... melde mich dann noch mal ...

Marc
 
So, Test ist absolviert, leider mit negativem Ergebnis :(.

Meine Unterordner enthalten Leerzeichen, der cp-Befehl führt beim Unterordner "2012 Texte" dann zu einem Abbruch mit "No such file or directory":

Code:
...
cp: Ordner1/2012: No such file or directory
cp: Ordner1/Texte/Text1.pdf: No such file or directory
cp: Ordner1/2012: No such file or directory
cp: Ordner1/Texte/Text2.pdf: No such file or directory
cp: Ordner1/2012: No such file or directory
cp: Ordner1/Texte/Text3.pdf: No such file or directory
...

Nach erneuter, nicht erfolgreicher Internet-Recherche, bin ich jetzt schon fast soweit, einfach die Originalordnerstruktur zu duplizieren und dann jeweils die nicht benötigten Dateien über eine Finder-Suche herauszufiltern und zu löschen ...
Aber irgendwie muss das Verschieben, wie im Ursprungs-Post beschrieben, doch auch direkt übers Terminal möglich sein!?

Vielleicht gibt es ja noch weitere Ideen? Oder aber der Vorschlag mit "find", "cut" und "cp" lässt sich anpassen?

Vielen Dank im Voraus :)!

Marc
 
Nee das bringt leider in dem Fall Nix da die for-Schleife schon Quatsch meldet - for trennt seine Eingabewerte mit Leerzeichen. Aus „Neuer Ordner“ macht der dann zwei Werte, „Neuer“ und „Ordner“.
 
alles muss ich selber machen...
Code:
while read file; do mv -v "${file}" "${file/Ordner 1/Ordner 2}"; done < <(find . -iname "*.pdf")
 
Zurück
Oben Unten