弄清楚什么是非符号链接路径?

Dav*_*osh 10 linux shell symbolic-link

在 Linux 上,如果我已经 cd 了并且现在在一个目录中,如果我没有使用符号链接到达那里,有没有办法找出该目录的真实路径?

考虑:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5
Run Code Online (Sandbox Code Playgroud)

或者:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4 4
$ cd 4/5
$ pwd 
/home/dave/tmp/4/5
Run Code Online (Sandbox Code Playgroud)

有什么办法可以确定 /home/dave/tmp/5 真的是 /home/dave/1/2/3/4/5 吗?

jtb*_*des 13

与 一起cd使用,请使用pwd -P

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5
$ pwd -P
/home/dave/tmp/1/2/3/4/5
Run Code Online (Sandbox Code Playgroud)

对于通用符号链接,请使用readlink

$ cd ..
$ readlink 5
1/2/3/4/5
Run Code Online (Sandbox Code Playgroud)

ls -l-d用于目录):

$ ls -ld 5
lrwxr-xr-x  1 dave  staff  9 Jul 24 10:10 5 -> 1/2/3/4/5
Run Code Online (Sandbox Code Playgroud)