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

2024-04-20 03:10:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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

门户ear文件位于,比如/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移动它,但我希望一次性完成此操作,而不是随意移动目录和文件。


Tags: 文件目录脚本homefoounixbarbaz
3条回答

我不认为jar工具在本机上支持这一点,但是您可以使用“unzip”解压缩jar文件,并使用“-d”选项指定输出目录,如下所示:

$ unzip -d /home/foo/bar/baz /home/foo/bar/Portal.ear Binaries.war

难道不能使用^{}更改python脚本中的工作目录吗?我同意,从jar命令本身看不到任何方法。

如果不想永久更改目录,请将当前目录(使用os.getcwd())存储在变量中,然后再更改。

如果您的jar文件已经有了如图所示的绝对路径名,那么这非常简单:

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

也就是说,您让Python change directory执行shell,然后运行提取。

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

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

相关问题 更多 >