
Я хочу создать zip-архив, игнорируя структуру папок и исключая содержимое определенной подпапки.
Я пытался:
zip -rj /path/to/target.zip /path/to/source -x "/path/to/source/subfolder/*"
Это не работает, zip возвращает сообщение:
Ошибка zip: Ничего не поделаешь! (/path/to/target.zip)
решение1
Выдержка изman 1 zip
[...] входной шаблон, такой как
/foo/bar/*
обычно будет соответствовать обоим путям, * соответствует dir/file1.c и file2.c. Обратите внимание, что в первом случае граница каталога (/) была пересечена в соответствии. С -ws никакие границы каталога не будут включены в соответствие, делая подстановочные знаки локальными для определенного уровня каталога. Таким образом, с включенным -ws будет соответствовать только второй путь.
При использовании -ws используйте ** для сопоставления за пределами границ каталогов, как это обычно делает *.
Это также верно при использовании-x
Поэтому для ваших целей удвойте *
шаблон исключения, если это каталог:
zip -rj /path/to/target.zip /path/to/source -x "/path/to/source/subfolder/**"