Допустим есть папка в которую вложено n-папок и файлов, которые так же имеют в себе n-папок и файлов и т.д. Можно подсчитать максимальную вложенность и сделать все командой вида
zip file.zip file/*/*/*...
, но мне кажется должен быть более лаконичный способ.