
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 {} .. \;