转到〜(波浪号字符)目录路径

时间:2018-08-18 09:04:49

标签: go

我正在尝试在golang中执行命令,该命令转到〜路径。 就像在终端中运行ls ~

最终,我想在〜/ TestDirectory上的特定目录中创建命令,例如git pull,mkdir等。

这就是我尝试过的:

  1. out, _ := exec.Command("ls", "~").Output()->输出为空,因此运行exec.Command("cd", "~")不会转到〜目录。
  2. out, _ := exec.Command("ls", "../..").Output()->输出结果比我当前目录高2个目录,但由于当前项目可能在任何地方,所以它不是这样做的方法
  3. 此外,我尝试设置命令的当前目录,输出为nil。

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

1 个答案:

答案 0 :(得分:2)

~由外壳扩展(至少在POSIX系统上扩展到$HOME;有关globbingglob(7)的信息)。您可以使用os.GetEnv("HOME")进行扩展

  

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

每个process都有自己的 working directory。但是exec.Command正在运行一个 new 进程,因此在您的情况下,只有该进程(而不是您自己的进程)正在更改其工作目录。您想使用os.Chdir来更改自己的进程的工作目录。