Mover arquivos do diretório um nível acima

Mover arquivos do diretório um nível acima

Eu tenho uma estrutura de arquivos com várias subpastas onde gostaria de procurar todas as subpastas que contenham uma determinada string ("sub*") e, em seguida, mover todos os arquivos nessas pastas encontradas um nível acima de cada um de seus respectivos locais. E até mesmo excluir potencialmente a pasta vazia, mas eu também poderia fazer isso com uma segunda etapa.

Responder1

Isso deve servir:

find /path/to/base/folder/ -type d -name 'sub*' -exec bash -c 'mv {}/* "$(dirname {})"' \;

OBSERVAÇÃO: isso não moverá arquivos ocultos (cujo nome começa com .)

Responder2

find /path/to -type f -execdir mv {} .. \;

informação relacionada