真实的当前目录

真实的当前目录

显然我知道pwdand readlink,但是有没有命令可以找出真实的当前目录的绝对路径(即解析链接和点)?

答案1

pwd -P

(在任何 POSIX shell 中),是您要查找的命令。

-P是为了身体的(相对于逻辑的-L,默认值),其中pwd主要转储内容$PWD(shell 根据您提供给cd或 的参数维护pushd))。

$ ln -s . /tmp/here
$ cd /tmp/here/here
$ cd ../here/here
$ pwd
/tmp/here/here/here
$ pwd -P
/tmp

答案2

使用

$ env pwd

或者

$ /bin/pwd

除非设置了变量 POSIXLY_CORRECT,在这种情况下您需要添加-P.


细节:

shell 有一个名为 的内置函数pwd,它默认打印 shell 的$PWD.这样做可能包括逻辑的路径(默认-L)。

如果您使用 ( ) 调用内置函数-P或使用外部函数/bin/pwd

$ ln -s . /tmp/here; cd /tmp/here/here/here

$ pwd
/tmp/here/here/here

$ pwd -P
/tmp

$ /bin/pwd 
/tmp

原因是外部/bin/pwd默认了该-P选项。
info pwd

此实现使用-P' as the default unless thePOSIXLY_CORRECT' 设置环境变量。

答案3

使用 Python 也可以:

python -c "import os; print(os.path.realpath('.'))"

相关内容