Você pode usar este loop em bash
:
for i in */; do zip -r "${i%/}.zip" "$i"; done
i
é o nome da variável de loop. */
significa todos os subdiretórios do diretório atual e incluirá uma barra nos nomes. Certifique-se de que você cd
esteja no lugar certo antes de executar isso. "$i"
simplesmente nomeia esse diretório, incluindo a barra final. As aspas asseguram que os espaços em branco no nome do diretório não causem problemas. ${i%/}
é como $i
mas com a barra final removida, então você pode usar isso para construir o nome do arquivo zip.
Se você quiser ver como isso funciona, inclua um echo
antes do zip
e você verá os comandos impressos ao invés de executados.