一尘不染

如何使用单个命令在UNIX文件系统中提取JAR并使用JAR命令指定其目标目录?

linux

我正在创建一个Python脚本,在其中执行UNIX系统命令。我有一个名为Binaries.war的战争档案,它位于名为Portal.ear的耳朵档案中

Portal耳朵文件位于/ home / foo / bar /

jar xf /home/foo/bar/Portal.ear Binaries.war

将Binaries.war文件从/home/foo/bar/Portal.ear存档中解压缩到运行脚本的当前目录中。

如何仅使用一个命令指定要提取到的目标目录?我想做这样的事情将Binaries.war提取到目录/ home / foo / bar / baz

jar xf /home/foo/bar/Portal.ear Binaries.war [into target directory /home/foo/bar/baz]

我在JAR手册页中搜索了选项,但似乎找不到一种简单的方法来执行此操作。当然,我可以将存档解压缩到当前目录中,然后使用mv进行移动,但我想一口气做到这一点,而不要乱动目录和文件。


阅读 234

收藏
2020-06-07

共1个答案

一尘不染

如果您的jar文件已经具有如图所示的绝对路径名,这将特别容易:

cd /where/you/want/it; jar xf /path/to/jarfile.jar

也就是说,您拥有了由Python更改目录执行的Shell,然后运行提取。

如果您的jar文件还没有绝对路径名,那么您必须将相对名称转换为绝对名称(通过在当前目录的路径前添加相对名称),以便jar在更改目录后可以找到它。

唯一需要担心的问题是路径名中的空格。

2020-06-07