我有点困惑unix中的软链接是如何工作的。看例子。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的总和。不是他们当前的位置。
这是内置到实现此行为的shell中的假设。它不一定是内建在用户的假设,直到他们熟悉意外的行为。一旦适应环境,似乎有点自然;我仍然不完全相信,并不总是我想要的。 IIRC,你可以用'cd ./ ..''来获得天真的行为。 – 2010-01-20 22:46:09
对不起,我不清楚你的第一个“That”是指什么。 你认为内核在'/ a/b/c/..'的情况下的行为,其中'c'是'/ f/g/h /'的符号链接?我认为这将是'/ a/b /',但不确定。 – 2010-01-20 22:51:45
不,内核的行为是'/ a/b/c/..'是'/ f/g'。基于你的访问路径的“直观”行为纯粹是一个壳发明,只有一些shell。据我记得,'csh'没有任何欺骗,因此表现得与系统本身一样。 – ephemient 2010-01-21 00:24:30