Algo como:
find . -type d -name src -exec sh -c 'cd "$1"; for f in *; do mv -i "$f" .. ; done' find-sh {} \;
Observe o -i
flag para mv
. Se você pedir uma confirmação sobre a sobrescrita de alguma coisa, você deve dizer "não", a menos que esteja esperando por ela.
Como você disse que também deseja remover os diretórios src
, use:
find . -type d -name src -exec sh -c 'cd "$1"; for f in *; do mv -i "$f" .. ; done' find-sh {} \; -exec rmdir {} \;
Faça um backup primeiro.