簡體   English   中英

如何在 Go 中更改當前目錄

[英]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()

但這實際上並沒有改變當前目錄。

通常,如果您需要從特定目錄運行命令,您可以將其指定為CommandDir屬性,例如:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM