Проблема явно высосана из пальца.
Если нужны "самодостаточные архивы", то и запаковывать надо по файлам/папкам, а не вот это вот мракобесие. В общем случае проходим по папкам и архивируем каждую
for i in */; do zip -r "${i%/}.zip" "$i"; done
В данном конкретном случае 99% объема раздачи составляют файлы .db.
Вот их и надо заархивировать, по отдельности. А всё остальное оставить как есть. И тогда этим "облаком" можно будет хоть как-то пользоваться, без нанайских национальных плясок, распаковывая по 10 чемоданов, чтобы достать один файл.
find . -type f -name '*.db' -exec zip -m {}.zip {} \;
В винде всё это тоже легко пишется.
Но сначала надо оценить саму необходимость возиться с архивирванием, чтобы сэкономить 30 гигов из 180.