Você também pode usar a opção -mindepth
:
find . -type f -mindepth 2 -exec mv -i -- {} . \;
(Juntamente com -maxdepth
, você também pode limitar os níveis de hierarquia dos quais coletar os arquivos.)
Eu usei mv -i
("interativo") para fazer mv
perguntar antes de sobrescrever arquivos. Com muitos subdiretórios, pode haver conflitos de nome nos quais você gostaria de ser avisado.
A opção --
interrompe o processamento da opção, portanto, mv
não se confunde com nomes de arquivos que começam com um hífen.
Limpe todo o grupo de subdiretórios vazios com
find . -depth -mindepth 1 -type d -empty -exec rmdir {} \;