如果我这样做,pwd
我注意到它使用了我用来进入当前目录的任何符号链接。我可以让它告诉我所在的“真实”目录...即从根目录到当前目录的路径而不使用任何符号链接吗?
答案1
根据 的 POSIX 手册页pwd
,该-P
选项可能有用:
-P 写入的绝对路径名不应包含在路径名上下文中引用符号链接类型文件的文件名。
因此
$ pwd -P
应该是你需要的。
答案2
pwd shell 内置使用 shell 在您使用时跟踪的路径cd
(并将其存储在$PWD
)。这意味着如果您有一个指向复杂(深层)路径的符号链接,它会告诉您输入的内容以更改为该目录而不是真实路径。这样做是为了给您大多数时候想要的东西。
/bin/pwd
使用getcwd
系统调用(现在是一个库调用,reading /proc/self/cwd
),它返回当前目录的规范路径,没有所有符号链接遍历。
正如 Steven D 指出的,pwd
可以-P
选择忽略$PWD
。它还可以-L
选择返回 的内容$PWD
。的手册页pwd
没有说明默认情况下使用哪个选项,但经验告诉我上面的描述是正确的(shellpwd
与/bin/pwd
)。但是,您可能不应该依赖它而只使用pwd -P
.