Я хотел бы заархивировать каталог, но исключить некоторые подкаталоги. Допустим, у меня есть такая структура:
directory
subdirectory 1
subdirectory 2
project 1
html
directory 1
vendor
node_modules
... (other directories)
project 2
html
directory 2
vendor
node_modules
... (other directories)
Я хотел бы заархивировать весь основной каталог, но я бы хотел исключить такие пути:
subdirectory2/*/html/vendor/**
subdirectory2/*/html/node_modules/**
где:
*- это одноуровневая директория**- это каталог с любыми файлами и подкаталогами
Проблема в том, что эти project 1 и project 2 довольно динамичны - их несколько. Также обратите внимание, что каталоги vendor (а также теоретически node_modules) могут быть размещены в некоторых других местах, например, в project 1/html/public/vendor поэтому я не хотел бы исключать только подкаталог vendor но только конкретный подкаталог vendor который расположен точно в заданных html каталогах проектов.
Можно ли сделать такую сложную вещь, используя только команду zip или, может быть, для этого должен быть написан некоторый bash-скрипт?
Я использую MacOS, если это имеет какое-либо значение.
То, чего я достиг до сих пор, это:
cd directory && zip test-zip.zip * -r -T -x */*/html/vendor/** */*/html/node_modules/**
Кажется, что это почти работает, но создает пустые каталоги модулей вендоров и узлов (но не включает их содержимое)
