Você precisará escrever um script de shell para esta tarefa. Vou tentar e comentar as linhas.
A primeira linha aqui é apenas uma variável onde você coloca o diretório absoluto da sua árvore src
.
SRCDIR=/dir/where/src/lives
A próxima linha executa find
. O comando colocará cada caminho de diretório com o nome test
na variável TESTDIRS
.
TESTDIRS=$(find $SRCDIR -type d -name test)
Agora você itera todos os diretórios test
encontrados
for dir in $TESTDIRS; do
Isso leva o caminho real e remove tudo, inclusive src
. Então você obtém a estrutura para criar o novo caminho.
NEWDIR=${dir##*/src}
Agora crie os novos diretórios.
mkdir -p tests/$NEWDIR
Mova o antigo diretório test
para o local recém-criado.
mv $dir tests/$NEWDIR
encerre a iteração
done
Tanto quanto eu entendo você isso deveria ser o que você quer. Mas por favor teste primeiro. Pode haver algumas ressalvas e a execução do script pode levar à perda de dados.