bash 中的 zip 文件夹

Ste*_*ong 9 bash zip

我有如下文件和文件夹:

/myproject/config/1.xml
/myproject/src/1.py
Run Code Online (Sandbox Code Playgroud)

我现在使用 bash 脚本压缩文件,如下所示:

cd myproject
zip -9 -r -q myfile.zip ./src/*
zip -9 -q myfile.zip ./config/1.xml
Run Code Online (Sandbox Code Playgroud)

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

现在我必须将 config 文件夹移出一个级别,src 文件夹仍然保留。

/config/1.xml
/myproject/src/1.py
Run Code Online (Sandbox Code Playgroud)

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

cd myproject
zip -9 -r -q myfile.zip ./src/*
zip -9 -q myfile.zip ../config/1.xml
Run Code Online (Sandbox Code Playgroud)

但是文件夹config不再与src处于同一级别。

我在这里缺少什么?

Leo*_*eon 11

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

cd /myproject
zip -9 -r -q /myfile.zip ./src/*
cd /
zip -9 -q /myfile.zip ./config/1.xml
Run Code Online (Sandbox Code Playgroud)