command-line - 如何在没有根目录的情况下将文件和目录添加到 zip 文件?

标签 command-line zip

zip 实用程序,当作为 zip -r out.zip base/* 调用时在这个目录结构上

.
./base
./base/b
./base/b/c
./base/d

创建以下结果
  adding: base/b/ (stored 0%)
  adding: base/b/c (stored 0%)
  adding: base/d (stored 0%)

我想从以下输出中获取包含数据的文件
  adding: b/ (stored 0%)
  adding: b/c (stored 0%)
  adding: d (stored 0%)

我希望 -j 选项可以帮助我,但它没有:它完全扁平化了目录结构。目前,我找到的唯一解决方案是 cd 进入 base 并从这里调用 zip,但我想知道是否有一个电源开关,我无法在文档中识别出这样的电源开关。

最佳答案

我明白你不想cd , 但...

如果所有其他方法都失败并且您希望将 zip 调用保持在一行,则可以链接调用并使用相对路径在根目录中输出 zip:

对于 Windows:
cd base & zip -r ..\out.zip * & cd ..
对于 Linux/Unix:
cd base ; zip -r ../out.zip * ; cd ..

关于command-line - 如何在没有根目录的情况下将文件和目录添加到 zip 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1009501/

相关文章:

windows - WSL2 : Launching VSCode from the command line using a *. 代码工作区文件

c++ - 修改命令行参数

android - 如何从 RAM 中完全解析压缩文件?

python - 如何在 Python 中将文件写入 Zip 文件的根目录

ios - 在iOS中将文件转换为Base64 URL安全编码格式

R直接将数据保存为zip文件

c - 如何在 C 语言的 shell 中执行带有多个参数的命令?

c# - 有什么方法可以使用 .NET 以编程方式从 Bcdedit.exe 获取值/设置?

windows - 是否可以在 Windows 命令行上撤消粘贴?

linux - Java war 文件被错误地(?)检测为无效的 zip 文件