Não, o Linux removeu esse recurso com a versão mais recente.
Apenas brincando, é claro que é factível.
for dir in dir1 dir2 dir3; do
zip -r "$dir" "$dir"
done
Se os diretórios realmente tiverem o mesmo prefixo:
for dir in dir[1-3]; do
zip -r "$dir" "$dir"
done
Isso pressupõe que o loop seja executado no diretório correto.
Se você tiver muitos diretórios e desejar excluir apenas alguns, use bash com sua opção extglob shell definida:
shopt -s extglob
for dir in dir!(4|5); do
test -d "$dir" || continue
zip -r "$dir" "$dir"
done
O padrão dir!(4|5) corresponderá a qualquer nome começando com dir e continuando com qualquer coisa que não seja 4 ou 5 . O padrão também pode ter sido escrito dir!([4-5]) ou !(dir4|dir5) .
Também verifiquei, no último loop, que qualquer nome correspondente que não seja o nome de um diretório é ignorado.