我想复制文本文件并且仅复制来自src/
to dst/
groovy:000> "cp src/*.txt dst/".execute().text
===>
groovy:000>
您可以看到命令执行时没有错误,但文件src/test.txt
不会被复制到dst/
这也失败了:
groovy:000> "cp src/* dst/".execute().text
===>
groovy:000>
然而...
"cp src/this.txt dst/".execute().text
works
Also,
"cp -R src/ dst".execute().text
works
为什么通配符似乎会导致我的命令默默失败?
感谢 tedu 让我成功了一半。
我相信他的解决方案不起作用的原因是“逃避”问题。
例如...
"sh -c 'ls'".execute()
作品。但...
"sh -c 'ls '".execute()
才不是。
可能有一种方法可以正确地对其进行转义,但我使用的解决方法是将字符串数组传递给 Runtime.getRuntime().exec
command = ["sh", "-c", "cp src/*.txt dst/"]
Runtime.getRuntime().exec((String[]) command.toArray())
效果很好!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)