Unix 软链接(soft link)和路径

标签 unix directory symlink pwd

我对软链接(soft link)在 unix 中的工作方式有些困惑。请参阅示例。

% cd /usr/local/
% ls -la
total 6
drwxr-xr-x   2 root     root         512 Jan 19 15:03 .
drwxr-xr-x  41 root     sys         1024 Jan 20 16:24 ..
lrwxrwxrwx   1 root     root          38 Jan 19 15:03 java -> /otherDir/java/jdk1.6.0_17 **<- this is a soft link**

% cd java **<- move to the softlink**

% pwd
/usr/local/java **<- the current location, say LOCATION_A**

% cd /otherDir/java/jdk1.6.0_17/ **<-move to the location of the softlink**

% pwd
/otherDir/java/jdk1.6.0_17 **<- the new current location, say LOCATION_B**

即使 LOCATION_A 是 LOCATION_B,他们有不同的路径,这不是有问题吗?

是否有一个命令(pwd 除外)可以给出文件的真实位置(而不仅仅是用户如何到达那里)。

在我看来,pwd 只是用户 cd 的总和。不是他们当前的位置。

最佳答案

试试 pwd -P。它不是“除了 pwd”,但它可以解决问题,至少在我的 Fedora 12 上的 bash 4.0.35 上是这样。YMMV。

更新:甚至可以与 sh 一起使用,所以它似乎是可移植的。

关于Unix 软链接(soft link)和路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2105572/

相关文章:

linux - 程序显示控制台输出,即使 stdout 和 stderr 被重定向

c# - 如何知道在特定文件夹中创建了新文件夹

c - fork 后 child 创建的文件是否也与 parent 共享?

GIT:检查当前分支是否存在于远程跟踪分支中的命令

r - 在 R 中的字符串或路径中转义反斜杠 (\)

将 Git 存储库放入 Git 存储库中的目录

visual-studio-2013 - Visual Studio、TFS 和文件系统链接

linux - 符号链接(symbolic link)上的意外 ioctl 行为

linux - Unix:cat 本身做什么?

hadoop - 如何删除hadoop中名称中带有 '['字符的目录