os.Chdir("/tmp") 在 Go 中运行异常
os.Chdir("/tmp") works abnormally in 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
为什么?
如本文中的 chown Apple thread
On OS X, /tmp
is an alias for /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 平台上。
我用的是 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
为什么?
如本文中的 chown Apple thread
On OS X,
/tmp
is an alias for/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 平台上。