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.