java - 使用 Java 的 runtime.exec 进行 Shell (bash) 大括号扩展

标签 java bash runtime.exec mkdir

我正在尝试获取一个扩展命令来与runtime.exec一起使用,但是大括号被解释为文字而不是被扩展。这就是我正在尝试做的事情:

String command = "mkdir -p Foldername{1,2,3}/InnerFolder";
Runtime.getRuntime().exec( new String[] { "sh", "-c", command } );

不幸的是,这在我的当前目录中提供了一个名为“Foldername{1,2,3}”的文件夹,而不是“Foldername1”、“Foldername2”和“Foldername3”。有谁知道如何防止大括号被解释为文字?

最佳答案

您正在尝试使用 Bash 通配符。它们在 Bash shell 中被解释。您直接运行 mkdir,因此没有 shell 来解释 {}。您需要指定 shell 的路径

String command = "mkdir -p Foldername{1,2,3}/InnerFolder";
Runtime.getRuntime().exec( new String[] { "/bin/bash", "-c", command } );

Source .

关于java - 使用 Java 的 runtime.exec 进行 Shell (bash) 大括号扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16486649/

相关文章:

java - Intellij 内容辅助 java 文档

java - Swing 组件之间的新行

linux - 如何删除一个目录下所有文件的内容

bash - 将 netcdf 文件中的 float 转换为 byte

git 编辑提交范围内的作者姓名,脚本

java - Windows 中带有非 ASCII 字符串的 Runtime.getRuntime().exec() ?

java - 没有 Spring Security 记住我以编程方式登录时创建的 cookie

java - 调用多个集合来填充 firestore 中的关系时,性能如何受到影响

java - 使用 onClick 执行多个 shell 命令

java - Logcat 多次重定向到文件