我正在尝试使用扩展命令来使用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”。有没有人知道如何防止大括号被解释为文字?
答案 0 :(得分:3)
您正在尝试使用Bash通配符。它们在Bash shell中解释。您正在直接运行mkdir,因此没有shell来解释{}
。您需要指定shell的路径
String command = "mkdir -p Foldername{1,2,3}/InnerFolder";
Runtime.getRuntime().exec( new String[] { "/bin/bash", "-c", command } );