Vá para o diretório de nível superior da árvore que contém os arquivos zip ( cd …
) e, em seguida, execute
mv **/*.zip /path/to/single/target/directory
Isso funciona fora da caixa em zsh. Se seu shell é bash, você precisará executar shopt -s globstar
primeiro (você pode e deve colocar este comando em seu ~/.bashrc
). Se seu shell for ksh, você precisará executar set -o globstar
primeiro (coloque-o em ~/.kshrc
).
Como alternativa, use find
, que funciona em qualquer lugar, sem preparação especial, mas é mais complicado:
find . -name '*.zip' -exec mv {} /path/to/single/target/directory \;
Se você quiser remover diretórios vazios depois, em zsh:
rmdir **/*(/^Fod)
No bash ou ksh:
rmdir **/*/
e repita enquanto houver diretórios vazios para remover. Alternativamente, em qualquer casca
find . -depth -type d -empty -exec rmdir {} \;