gpt4 book ai didi

linux - 使用 make 压缩子文件夹中的特定文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:16:30 24 4
gpt4 key购买 nike

我有一个 makefile,我想在其中将几个文件压缩在一起,但使用一个子文件夹作为 zip 文件的根目录。目前我正在使用这个:

 kountdown.zip: $(SRCS)
cd $(SRCDIR) && zip -r --filesync ../kountdown.zip .

$(SRCS) 是我在 $(SRCDIR) 中的源文件列表。这可行,但我只想将 $(SRCS) 中的文件包含在 zip 文件中,而不是整个目录。问题是 $(SRCS) 中的路径是相对于 makefile 的位置,而不是 $(SRCDIR)。我可以为相对于 $(SRCDIR) 的路径创建第二个变量,但我想避免重复列表。理想情况下,我想要一种在当前目录中运行 zip 的方法,但使用子目录作为 zip 文件的根目录。但是从我所有的搜索来看,这似乎是不可能的。有任何想法吗?

我正在使用 linux。

最佳答案

这个怎么样:

 kountdown.zip: $(SRCS)
cd $(SRCDIR) && zip -r --filesync ../kountdown.zip $(subst $(SRCDIR)/,,$(SRCS))

假设 $(SRCDIR) 中还没有 /。如果是,请将其从上面的 subst 语句中删除。

这也应该有效:

 kountdown.zip: $(SRCS)
cd $(SRCDIR) && zip -r --filesync ../kountdown.zip $(patsubst $(SRCDIR)/%,%,$(SRCS))

关于linux - 使用 make 压缩子文件夹中的特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20715476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com