2017-05-10 16 views
0

我想在特定目錄內運行一個命令。因此,有兩種方法可以完成它。在golng中使用os/exec執行特定目錄內的命令

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

這不是爲我工作的otherhand,

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

這是工作。 我想實現它的第一種方式。我不知道爲什麼它不工作 第二個拋出一個錯誤

無法解壓縮文件:EXEC:「回聲*的tar.gz | xargs的-N1焦油ZXF」:在$ PATH 不是發現可執行文件我錯過了什麼?

回答

2

Command的第一個參數指定要運行的可執行文件。要運行shell管道表達式,請執行shell:

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