我正在尝试将名为“ project”的目录压缩为名为“ BARBIER_MAM.zip”的.zip文件。但是,解压缩.zip文件时,所有包含的文件都会显示出来,我必须手动将它们放回目录中。这是我目前的工作方式。在“项目”目录中,我有一个带有“归档”目标的makefile:
archive: clean
zip -r BARBIER_MAM.zip .
我也尝试过:
archive: clean
cd ..
zip -r BARBIER_MAM.zip project
但是我遇到了一个错误:
zip warning: name not matched: project
如果您要询问,是的,它必须在必须压缩的目录中包含的makefile中完成。
从make documentation(强调我的位置:)>
是时候执行配方来更新目标了,它们通过调用配方的每行一个新的子shell
来执行,除非.ONESHELL特殊目标生效(请参阅使用一个Shell)” (实际上,make可以采用不影响结果的快捷方式。)请注意:这意味着设置shell变量并调用shell命令(如cd)来设置每个进程的本地上下文不会影响配方中的以下行
。如果要使用cd影响下一条语句,请将两个语句放在一个配方行中。因此,在第二个示例中,将其更改为:
archive: clean
cd .. && zip -r BARBIER_MAM.zip project