Você pode ter que fazer este com o cygwin , que eu recomendo para quem está (ainda?) executando o M $ Windoze spyware.
Algo como isso deve funcionar. Execute-o no diretório C:/Users/(Username)/Desktop/(Parent-Collection name)/ (que no cygwin seria chamado de /cygdrive/c/Users/(Username)/Desktop/(Parent-Collection name)/) :
for i in 'find . -name "*" -type f';
do mv $i 'echo $i | sed 's/.*\/\([^/]*\)//'';
done
Isso moverá todos os arquivos em todos os diretórios abaixo de (Parent-Collection name) para (Parent-Collection name) . Especificamente, este é um loop do com o índice i fazendo o loop em todos os arquivos do diretório atual. Isso é o que o comando find lista. Você pode procurar a sintaxe executando man find . Então o que você executa é mover ( mv ) esse arquivo ( $i ) para o novo local. Esse novo local é especificado pelo nome do arquivo original ( echo $i ) executado pelo editor de fluxo ( sed , que você pode procurar com man sed ), que está definido para remover o caminho, deixando o nome do arquivo base.
Sugiro testá-lo (crie um diretório com alguns subdiretórios contendo alguns arquivos de texto vazios ou algo assim) e certifique-se de ter um backup!
Você pode então querer remover todos os diretórios (agora vazios) abaixo do seu diretório atual:
for i in 'find . -name "*" -type d';
do rmdir $i;
done
A única coisa diferente aqui é que você está dizendo find para procurar diretórios ( -type d ) em vez de arquivos ( -type f ) e então remover esses diretórios ( rmdir , que funciona apenas em diretórios vazios) .
O linux não é legal? O Cygwin dá a você um pouco do poder do Linux e pode ser o primeiro passo para deixá-lo confortável o suficiente para que algum dia você possa até encontrá-lo em você para mudar para algo como o Ubuntu. :)