我正在创建一个Python脚本,在其中执行UNIX系统命令.我有一个

门户ear文件位于,比如/home/foo/bar中/

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

将提取二进制文件.war文件从/home/foo/bar/Portal中取出.ear存档到我运行脚本的当前目录中.

如何仅使用一个命令指定要提取到的目标目录?

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

我在JAR手册页面上搜索了一些选项,但似乎找不到一个简单的方法.当然,我可以将归档文件提取到我当前的目录中,然后使用mv移动它,但我希望一次完成这项工作,而不是随意移动目录和文件.

推荐答案

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

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

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

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

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

Linux相关问答推荐

仅使用Find搜索32字符长的目录

用户作用域在Linux内核密钥环(Golang)中是什么意思?

如何使用 sed 和 date 命令替换和格式化字符串中的日期?

如何使 awk 输出更具可读性?

为什么当凭证助手设置为存储 SSH 远程存储库时 git pull 不使用 .git-credentials

ln命令报错target not a directory

CMake:处理静态库和共享库的正确方法

sed:用空格替换

中的换行符

sed 命令在 gitlab runner 上无法正确执行

根据外部请求在 Netbeans 中启动 XDebug

MessageBox 的 GTK 实现

Linux time 命令输出中 real、user 和 sys 的含义

查看 linux 上的多核或多 CPU 利用率

使用特定目录作为根目录压缩目录的命令

如何分析内存使用情况?

什么是适用于 Linux 的好的 Prolog IDE?

cmake : 从脚本设置环境变量

在 Ubuntu 中学习 OpenGL

.NET Core 中的跨平台文件名处理

Bash:等待超时