创建zip而不记录根路径; 编程

Xah*_*Lee 5 bash shell zip

假设我要压缩这个目录〔c:/ Users/xah/ErgoEmacs_Source/ergoemacs/build-util /〕

我希望输出目录是〔c:/ Users/xah/xx2 /〕

(我现在的目录可能在任何地方.我在elisp程序中调用zip)所以我这样做

zip -r c:/Users/xah/xx2/build-util.zip c:/Users/xah/ErgoEmacs_Source/ergoemacs/build-util/
Run Code Online (Sandbox Code Playgroud)

然后zip将记录这样的完整路径

adding: Users/xah/ErgoEmacs_Source/ergoemacs/build-util/ (stored 0%)
adding: Users/xah/ErgoEmacs_Source/ergoemacs/build-util/.svn/ (stored 0%)
adding: Users/xah/ErgoEmacs_Source/ergoemacs/build-util/.svn/all-wcprops (deflated 56%)
...
Run Code Online (Sandbox Code Playgroud)

我希望路径只是以build-util开头.

注意:我在一个程序(elisp)中调用zip,我不能或不想使用任何envirenment变量的概念.

这有可能与一些zip参数?

Tim*_*rry 4

奇怪的是,您最好的选择可能是使用 Java JDK 中的 jar。

jar -cMf c:/Users/xah/xx2/build-util.zip -C c:/Users/xah/ErgoEmacs_Source/ergoemacs/build-util/ .

“-M”告诉 jar 不要创建清单文件,-C 告诉它在开始压缩文件之前更改目录。我基于此的文档位于: http: //download.oracle.com/javase/tutorial/deployment/jar/build.html