Método assustador, mas funciona para mim:
(find source|egrep -v "node_modules|^source/exact/node_plugin" && echo tmptarget)|xargs cp --parents
mv tmptarget/source target
Explicação, se necessário. cp
funciona assim:
cp source1 source2 ... sourceN target
- Então, faça o
find
para imprimir toda a sua estrutura.
- Use
egrep
para excluir todas as ramificações indesejadas. Certifique-se de ter formado corretamente o seu padrão. Use ^
e caminho completo se você quiser excluir a ramificação exata ou apenas node_modules
se quiser excluir todas elas.
- imprima a pasta de destino com o comando
echo
.
- Deixe
xargs
colocar todas essas linhas no comando cp
para você
-
--parents
é necessário para criar pastas pais, porque não podemos usar a opção -r
aqui, pois isso irá bagunçar tudo na pasta de destino.
- E finalmente
mv
toda nova estrutura para o destino real