led*_*den 20 linux unix zip path archiving
我有通常的目录结构(src/,bin/,...)的项目,即
project-name/
|-- bin
|-- lib
|-- src
`-- Makefile
Run Code Online (Sandbox Code Playgroud)
并想创建一个具有以下目录结构的存档:
project-name-version/
|-- bin
|-- lib
|-- src
`-- Makefile
Run Code Online (Sandbox Code Playgroud)
有没有一种巧妙的方法可以避免在project-name/别处创建临时目录,然后在最终调用zip -r ...该临时目录时复制文件?
(我基本上是在寻找某种路径前缀或相对路径选项。)
cYr*_*rus 17
这与其说是一个答案,不如说是一个建议:使用Git!
如果你为你的项目设置了一个Git存储库,整个事情就会变得非常简单:
git archive HEAD --prefix=project-name-version/ \
--format=zip -o project-name-version.zip
Run Code Online (Sandbox Code Playgroud)
Fat*_*ror 10
也许您已经想到了这一点,但为什么不使用符号链接而不是复制所有内容呢?
ln -s project-name project-name-version
Run Code Online (Sandbox Code Playgroud)
然后zip -r通过符号链接使用(zip默认情况下会取消引用符号链接)?完成后,您可以简单地rm使用符号链接。也许这不是最优雅的解决方案,但我不知道zip直接通过的明显方法。