操作系统。Chdir( "/tmp" ) 在 Go 中工作异常



我用的是Macbook。我试图使用os.Chdir("/tmp"),但结果是/private/tmp。下面是我的代码:

package main
import (
  "fmt"
  "os"
)
func main() {
  s, _ := os.Getwd()
  fmt.Println(s)
  if err := os.Chdir("/tmp"); err != nil {
    panic(err)
  }
  s, _ = os.Getwd()
  fmt.Println(s)
}

输出为:

➜  test   go run main.go
/Users/willy/test
/private/tmp

为什么?

在这个Apple线程中

在OS X上,/tmp/private/tmp的别名。

$ ls -ale / | grep -i tmp
lrwxr-xr-x@    1 root  wheel        11 Aug 30  2009 tmp -> private/tmp
$

符号链接后面是一个golang syscall.Chdir()
所以最终的路径应该在Mac OS平台上。

最新更新