Eu suponho que você esteja em um diretório onde todos os subdiretórios devam ser zipados e que os binários do 7-zip estejam em seu PATH.
Você pode usar o seguinte no Windows (o diretório é %i
):
for /d %i in (*) do 7z ... %i.7z ...
No Linux (o diretório é $i
):
for i in $(find -mindepth 1 -maxdepth 1 -type d) ; do 7zr ... $i.7z ... ; done
Mais curto mas menos robusto:
for i in */ ; do 7zr ... ${i%/}.7z ... ; done
Exemplo para zipar todos os arquivos .txt
em todos os diretórios que começam com backup-
:
Windows:
for /d %i in (backup-*) do 7z ... %i.7z %i\*.txt
Linux:
for i in backup-*/ ; do 7zr ... ${i%/}.7z $i/*.txt ; done