Einzeiler in Bash.

Show Plain Text
  1. find . -type d -maxdepth 1 -name \*-1 -execdir sh -c 'i=$(basename "{}" -1) && rsync -av "{}/" "$i"' \; -execdir rm -r "{}" \;


Ich würde es allerdings in zwei Schritte aufteilen, erst zusammenlegen, eventuell überprüfen, dann löschen:

Show Plain Text
  1. find . -type d -maxdepth 1 -name \*-1 -execdir sh -c 'i=$(basename "{}" -1) && rsync -av "{}/" "$i"' \;
  2. find . -type d -maxdepth 1 -name \*-1 -execdir rm -r "{}" \;


Vorher ein cd ins entsprechende Verzeichnis, oder find . durch find pfad/zum/verzeichnis ersetzen. Die rsync-Parameter nach Bedarf anpassen.