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. :)