A resposta que você mais procura é:
zip -r file.zip . -i \*
Você recebe um aviso ao compactar uma pasta vazia, mas, novamente, a solução é independente do tamanho de sua função. Funciona para diretórios vazios e não vazios.
Esta solução funciona no sentido relativo, ao contrário das soluções que usam $ PWD como
zip -r file.zip $PWD
que comprimirá toda a estrutura de pastas.