如何将我的密码更改为符号链接目录的真实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; }