Ich muss zugeben, ich weiß selbst nicht genau, wie ich das Problem schildern soll.Wir haben eine Ordnerstruktur, die so aussieht:
/mnt/foo/bar/Incomming/
in Incomming liegen mehrere Ordner. In manchen von diesen liegen mp3-Dateien, ich weiß allerdings nicht in welchen. Jetzt kann ich via find natürlich rausfinden, in welchen Ordnern mp3-Dateien liegt, so viel ist klar, ich will aber den kpl. Ordner in welchem sich die Dateien befinden, an einen anderen Ort verschieben.
Codefind /mnt/foo/bar/Incomming -type f \( -iname \*.mp3 \) -exec mv -v {} /mnt/foo/bar/Output/Music \;
Dies betrifft aber nur die Dateien. Ich möchte dass die kpl. Ordnerstruktur mitkopiert wird.
Ich würde dir empfehlen, mittels dirname (das Gegenstück zu basename) den Ordnernamen der gefundenen Datei zu prüfen und dann rekursiv zu verschieben. Da du ein mv machst und kein cp, musst du danach auch nicht mehr mittels /bin/test prüfen, ob der Ordner bereits existiert.
So inetwa könnte man das machen, ich habe es nicht getestet: