显然我知道pwd
and 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 the
POSIXLY_CORRECT' 设置环境变量。
答案3
使用 Python 也可以:
python -c "import os; print(os.path.realpath('.'))"