12

У меня есть проект с обычной структурой каталогов (src/, bin/, ...), т.е.

project-name/
|-- bin
|-- lib
|-- src
`-- Makefile

И хотел бы создать архив со следующей структурой каталогов:

project-name-version/
|-- bin
|-- lib
|-- src
`-- Makefile

Есть ли удобный способ сделать это, чтобы избежать создания временного каталога project-name/ другом месте, а затем копировать файлы в окончательно вызывающий zip -r ... в этом временном каталоге?

(Я в основном ищу какой-то префикс пути или параметр относительного пути.)

2 ответа2

11

Это скорее совет, чем ответ: используйте Git !

Если вы настроите Git- репозиторий для своего проекта, все станет довольно просто:

git archive HEAD --prefix=project-name-version/ \
    --format=zip -o project-name-version.zip
7

Может быть, это уже произошло с вами, но почему бы просто не использовать символическую ссылку, а не копировать все?

ln -s project-name project-name-version

затем используйте zip -r через ссылку sym (zip будет разыменовывать ссылки sym по умолчанию)? Когда вы закончите , вы можете просто rm ссылку сим. Возможно, это не самое элегантное решение, но я не знаю очевидного способа сделать это напрямую через zip .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .