[英]How to change the current directory in Go
與在 Go 中為 CMD 執行 'cd' 命令不同,我只想真正使用 Go 運行cd directory_location
並更改當前目錄。
例如,
假設我在 ~/goproject 上,我在終端中運行./main
,我想在終端中的 ~/goproject2 。
我試過了
cmd := exec.Command("bash", "-c", "cd", "~/goproject2")
cmd.Run()
但這實際上並沒有改變當前目錄。
通常,如果您需要從特定目錄運行命令,您可以將其指定為Command的Dir屬性,例如:
cmd := exec.Command("myCommand", "arg1", "arg2")
cmd.Dir = "/path/to/work/dir"
cmd.Run()
你想要os.Chdir
。 此函數將更改應用程序工作目錄。 如果您需要更改shell 工作目錄,最好的辦法是查看cd
工作方式並從中恢復。
正如您所發現的,您不能使用cd
從應用程序內部更改當前目錄,但是使用os.Chdir
則不需要它工作:)
用法示例:
home, _ := os.UserHomeDir()
err := os.Chdir(filepath.Join(home, "goproject2"))
if err != nil {
panic(err)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.