O comando zip tem um sinal --exclude (ou -x ) para excluir alguns arquivos :
zip -r --exclude 'img/' compressed_filename.zip path/foldername
Ajuste os caminhos, se necessário.
Você também pode usar o comando find para listar todos os arquivos a serem incluídos e passá-los para o comando zip .
find path/foldername -name 'img' -prune -o -exec zip compressed_filename.zip {} +
Isso pesquisará o path/foldername de todos os arquivos (e pastas). Se encontrar img , ele parará de processá-lo ( -prune ). Todos os outros itens encontrados ( -o ) serão (juntos, por causa de + no final) passados para a invocação zip .