Você pode fazer isso com um loop for
no diretório que é o pai de folder1
, folder2
etc (o diretório html
em seu exemplo), portanto, primeiro cd
(substitua pelo caminho real:
cd /PATH/TO/html
Nesse comando, se o nome do que você deseja mover não for test
, substitua test
pelo nome real ou use * para mover tudo:
for dir in ./* ; do mv "$dir"/*/test "$dir"/ ; done
Isso moverá todas as coisas nomeadas test
(e todos os seus conteúdos, se forem diretórios) em subdiretórios do diretório de trabalho atual para seus diretórios-pais, mas não excluirá os subdiretórios em si (por isso, js
no seu exemplo, não seria excluído)
Exemplo:
antes:
.
├── 15
│ └── rainbow
│ ├── test
│ └── fun
depois:
.
├── 15
│ ├── rainbow
│ └── test
│ └── fun
O comando lançará um erro para qualquer coisa que não seja um diretório com essa estrutura e conteúdo correspondente, mas ainda faz o que você quer, então, por favor, ignore isto ou envie os erros, anexando 2>/dev/null
for dir in ./* ; do mv "$dir"/*/test "$dir"/ ; done 2>/dev/null