Find current working directory
yourbasic.org/golang

Current directory
Use os.Getwd to find the path name for the current directory.
path, err := os.Getwd() if err != nil { log.Println(err) } fmt.Println(path) // for example /home/user Warning: If the current directory can be reached via multiple paths (due to symbolic links), Getwd may return any one of them.
Current executable
Use os.Executable to find the path name for the executable that started the current process.
path, err := os.Executable() if err != nil { log.Println(err) } fmt.Println(path) // for example /tmp/go-build872132473/b001/exe/main Warning: There is no guarantee that the path is still pointing to the correct executable. If a symlink was used to start the process, depending on the operating system, the result might be the symlink or the path it pointed to. If a stable result is needed, path/filepath.EvalSymlinks might help.