peliculas - groovy traduccion
Groovy ejecuta el comando de shell "cp*" (2)
Quiero copiar archivos de texto y solo archivos de texto de src/
a dst/
groovy:000> "cp src/*.txt dst/".execute().text ===> groovy:000>
Puede ver que el comando ejecuta el error w / out, pero el archivo src/test.txt
no se copia a dst/
Esto también falla:
groovy:000> "cp src/* dst/".execute().text ===> groovy:000>
Sin embargo...
"cp src/this.txt dst/".execute().text
trabajos
También,
"cp -R src/ dst".execute().text
trabajos
¿Por qué la dosis del comodín parece hacer que mi comando falle silenciosamente?
Gracias tedu por llevarme hasta la mitad de allí.
Creo que la razón por la que su solución no funcionó fue por un problema de ''escape''.
Por ejemplo...
"sh -c ''ls''".execute()
trabajos. Pero...
"sh -c ''ls ''".execute()
no.
Probablemente exista una forma de evitarlo correctamente en línea, pero la solución que estoy usando es pasar una matriz de cadenas a Runtime.getRuntime (). Exec
command = ["sh", "-c", "cp src/*.txt dst/"] Runtime.getRuntime().exec((String[]) command.toArray())
funciona maravillosamente!
La expansión del comodín es realizada por el shell, no por cp (o groovy). Su primer ejemplo es tratar de copiar un archivo llamado *. Puedes hacer tu comando "sh -c ''cp ...''"