我有如下文件和文件夹:
/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个config和1.xml,还有1个src和1.py。这就是我想要的,这 2 个文件夹在 zip 文件中处于同一级别。
现在我必须将 config 文件夹移出一层,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
但是文件夹config已经和src不在同一层了。
我在这里错过了什么?
最佳答案
为了在压缩存档中构建所需的层次结构,您必须将代表此类层次结构的相对路径传递给 zip。在您的情况下, ./src
和 ../config
显示为不同的级别,这反射(reflect)在生成的存档中。为了使 config
和 src
出现在同一层,您必须在脚本中添加一个额外的 cd
:
cd /myproject
zip -9 -r -q /myfile.zip ./src/*
cd /
zip -9 -q /myfile.zip ./config/1.xml
关于bash - bash 中的 zip 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44062627/