如何将我的密码更改为符号链接目录的真实path?

这是一个相当初级的问题:

鉴于以下符号链接创build:

ln -s /usr/local/projects/myproject/ myproject 

…从我的主目录/ home / jvf / ,inputmyproject符号链接给我一个pwd / home / jfv / myproject / 。 现在,我想进入我已经符号链接的目录的父目录,但是cd ..命令只会将我带回到我的主目录/ home / jfv / 。 有没有办法逃避我input的符号链接,而是有一个pwd等于myproject目录的实际path。 也就是说,把我的密码从/ home / jfv / myproject /改成/ usr / local / projects / myproject /

谢谢 :)

只需使用-P (物理)标志:

 pwd -P cd -P .. 

如果你做了以下,你应该没问题。

1)首先你遵循你的符号链接:

 [jfv@localhost ~]$ cd myproject 

2)现在执行以下命令:

 [jfv@localhost myproject]$ cd -P ./ 

3)现在,你可以检查你的位置,你会看到你在物理目录

 [jfv@localhost myproject]$ pwd 

输出结果如下:

 /usr/local/projects/myproject 

现在,你所做的一切都是本地的,而不是符号链接。

以编程方式,您可以使用getcwd库函数执行此操作:

 #include <unistd.h> #include <stdio.h> int main(int argc, char **argv) { char buf[1024*1024L]; char *cwd; cwd = getcwd(buf, sizeof buf); if (cwd == NULL) { perror("getcwd"); return 1; } printf("%s\n", cwd); return 0; }