一、go应用os.Getwd()获取当前目录的绝对路径,等同于pwd
func TestPwd(t *testing.T) { pwd, err := os.Getwd() t.Log(pwd, err)}
输入:
/Users/zhanghaisheng/study/dataStructure/file <nil>
二、源码浏览os.Getwd()
源码门路在 src/os/getwd.go
// Getwd 获取当前目录绝对路径func Getwd() (dir string, err error) { if runtime.GOOS == "windows" || runtime.GOOS == "plan9" { return syscall.Getwd() } // Clumsy but widespread kludge: // if $PWD is set and matches ".", use it. dot, err := statNolog(".") if err != nil { return "", err } dir = Getenv("PWD") if len(dir) > 0 && dir[0] == '/' { d, err := statNolog(dir) if err == nil && SameFile(dot, d) { return dir, nil } }.........省略
咱们看到 有一行代码
dir = Getenv("PWD")
阐明在底层,这个函数其实也是调用了 零碎的pwd命令。