使用golng中的os / exec在特定目录中执行命令

时间:2017-05-10 11:05:07

标签: go

我想在特定目录中运行命令。所以这里有2种方法。

command := exec.Command("echo *tar.gz | xargs -n1 tar zxf") 
command.Dir = pathFinal 
cmdErr := command.Run()

另一方面,这对我不起作用,

command := "cd "+pathFinal+"; "+"echo *tar.gz | xargs -n1 tar zxf" 
cmd := exec.Command("/bin/sh", "-c", command) 
cmdErr := command.Run()

这很有效。 我想以第一种方式实现它。我不知道为什么它不起作用 第二个抛出错误

无法解压文件:exec:" echo * tar.gz | xargs -n1 tar zxf":$ PATH中找不到可执行文件 我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

Command的第一个参数指定要运行的可执行文件。要运行shell管道表达式,请执行shell:

command := exec.Command("/bin/sh", "-c", "echo *tar.gz | xargs -n1 tar zxf") 
command.Dir = pathFinal 
cmdErr := command.Run()