Ste*_*n D 82
根据 POSIX 联机帮助页pwd,该-P选项可能有用:
-P 写入的绝对路径名不应包含在路径名上下文中引用符号链接类型文件的文件名。
因此
$ pwd -P
Run Code Online (Sandbox Code Playgroud)
应该是你需要的。
内置的 pwd shell 使用 shell 跟踪您cd(并将其存储在 中$PWD)的路径。这意味着如果你有一个指向复杂(深层)路径的符号链接,它会告诉你你输入了什么来更改到该目录而不是真实路径。这样做是为了在大多数情况下为您提供您想要的东西。
/bin/pwd使用getcwd系统调用(现在是库调用, reading /proc/self/cwd)它返回当前目录的规范路径,没有所有符号链接遍历。
正如 Steven D 指出的那样,pwd可以-P选择忽略$PWD. 它还可以-L选择返回$PWD. 的手册页pwd没有说明默认使用哪个选项,但经验告诉我上面的描述是正确的(shell pwdvs. /bin/pwd)。但是,您可能不应该依赖它而只使用pwd -P.