Você pode usar find :
find . -regextype posix-awk -type d -regex ".*/(.*)/$" -exec sh -c "mv {}/* {}/../" \; -delete
-
-regextype posix-awk: precisamos usarposix-awkregextype para usar a referência anterior () -
-type d: segmenta diretórios -
-regex ".*/(.*)/$": segmenta arquivos correspondentes a*/bar/bar -
-exec sh -c "mv {}/* {}/../": move diretórios direcionados para seus diretórios pais -
-delete: elimina diretórios direcionados
Observação: você não pode usar rmdir {} dentro de -exec ( find retornará um erro No such file or directory ), você precisa usar a opção -delete após -exec .