Linux:创建 zip 存档时指定顶级目录

Linux:创建 zip 存档时指定顶级目录

我有一个具有通常目录结构的项目(src /,bin /,...),即

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

并想创建一个具有以下目录结构的档案:

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

有没有一种巧妙的方法可以做到这一点,避免project-name/在其他地方创建临时目录,然后复制其中的文件并最终调用zip -r ...该临时目录?

(我基本上是在寻找某种路径前缀或相对路径选项。)

答案1

也许您已经想到了这一点,但为什么不直接使用符号链接,而是复制所有内容呢?

ln -s project-name project-name-version

然后zip -r通过符号链接使用(zip默认情况下将取消引用符号链接)?完成后,您可以简单地使用rm符号链接。也许这不是最优雅的解决方案,但我不知道有什么明显的直接方法zip

答案2

这更多的是一个建议而不是答案:使用Git

如果你设置了一个Git你的项目的存储库,整个事情变得非常简单:

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

相关内容