bash中的zip文件夹

时间:2017-05-19 06:11:51

标签: bash zip

我有如下文件和文件夹:

/myproject/config/1.xml
/myproject/src/1.py

我现在使用bash脚本压缩文件:

cd myproject
zip -9 -r -q myfile.zip ./src/*
zip -9 -q myfile.zip ./config/1.xml

zip文件现在有2个文件夹,其中包含1个配置和1.xml,其中包含1个src和1.py。这就是我想要的,2个文件夹在zip文件中处于同一级别。

现在我必须将配置文件夹移出一个级别,src文件夹仍然存在。

/config/1.xml
/myproject/src/1.py

我可以将代码更改为以下内容:

cd myproject
zip -9 -r -q myfile.zip ./src/*
zip -9 -q myfile.zip ../config/1.xml

但文件夹配置不再与src处于同一级别。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

为了在压缩存档中构建所需的层次结构,您必须传递到表示此类层次结构的zip相对路径。在您的情况下,./src../config显示为不同级别,这会反映在生成的存档中。要使configsrc出现在同一级别,您必须在脚本中添加额外的cd

cd /myproject
zip -9 -r -q /myfile.zip ./src/*
cd /
zip -9 -q /myfile.zip ./config/1.xml