Go 转到~(tilde字符)目录路径

Go 转到~(tilde字符)目录路径,go,Go,我正试图在golang中执行一个命令,该命令指向~path。 喜欢在终端中运行ls~ 最后,我想在特定的目录中创建命令,该目录位于~/TestDirectory,例如gitpull、mkdir等 以下是我尝试过的: out,:=exec.Command(“ls”、“~”).Output()->输出为空,因此运行exec.Command(“cd”、“~”)不会转到~目录 out,:=exec.Command(“ls”,“./”).Output()->Output是我当前项目上方的两个目录,但这不是

我正试图在golang中执行一个命令,该命令指向~path。 喜欢在终端中运行
ls~

最后,我想在特定的目录中创建命令,该目录位于~/TestDirectory,例如gitpull、mkdir等

以下是我尝试过的:

  • out,:=exec.Command(“ls”、“~”).Output()
    ->输出为空,因此运行
    exec.Command(“cd”、“~”)
    不会转到~目录
  • out,:=exec.Command(“ls”,“./”).Output()
    ->Output是我当前项目上方的两个目录,但这不是执行此操作的方法,因为当前项目可能在任何地方
  • 此外,我还尝试设置命令的当前目录,输出为nil

    cmd := exec.Command("cd")
    cmd.Dir = "~"
    cmd.Run()
    

  • ~
    由shell扩展(扩展到您的
    $HOME
    ,至少在POSIX系统上是这样;请阅读和)。你可以用它来扩张

    此外,我还尝试设置命令的当前目录,输出为nil


    每个人都有自己的想法。但是
    exec.Command
    正在运行一个新进程,因此在您的情况下,只有该进程(而不是您自己的进程)正在更改其工作目录。您希望使用更改自己进程的工作目录。

    ~
    由shell解释,而不是由操作系统解释。通过shell执行命令或在应用程序代码中展开
    ~
    。如果您可以使用$HOME而不是
    ~
    ,则可能会有所帮助。