Linux: Especificando o diretório de nível superior ao criar o arquivo zip

12

Eu tenho projeto com a estrutura de diretórios usual (src /, bin /, ...), por exemplo

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

E gostaria de criar um arquivo com a seguinte estrutura de diretórios:

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

Existe uma maneira legal de fazer isso, o que evita a criação de um diretório temporário project-name/ em outro lugar, e depois copiar os arquivos dentro de um finalmente chamado zip -r ... nesse diretório temporário?

(Estou procurando basicamente algum tipo de prefixo de caminho ou opção de caminho relativo.)

    
por leden 22.02.2012 / 01:18

2 respostas

7

Talvez isso já tenha ocorrido com você, mas por que não usar apenas um link sym em vez de copiar tudo?

ln -s project-name project-name-version

use zip -r através do link sym ( zip desreferirá os links sym por padrão)? Quando terminar, você pode simplesmente rm o link sym. Talvez não seja a solução mais elegante, mas eu não sei uma maneira óbvia de fazer isso através de zip diretamente.

    
por 22.02.2012 / 01:46
11

Isso é mais um conselho do que uma resposta: use Git !

Se você configurar um repositório Git para o seu projeto, a coisa toda se tornará bem direta:

git archive HEAD --prefix=project-name-version/ \
    --format=zip -o project-name-version.zip
    
por 22.02.2012 / 02:34