这是一个相当基本的* nix问题:
给出以下符号链接创建:
ln -s /usr/local/projects/myproject/ myproject
...从我的主目录 / home / jvf / ,进入 myproject 符号链接给我一个pwd / home / jfv / myproject / 。现在,我想进入我已符号链接到的目录的父目录,但 cd .. 命令只会将我带回我的主目录 / home / jfv / < / strong>即可。无论如何都要逃避我输入的符号链接路径,而是将pwd等于 myproject 目录的实际路径。也就是说,将我的pwd从 / home / jfv / myproject / 更改为 / usr / local / projects / myproject / ?
谢谢:)
答案 0 :(得分:129)
只需使用-P
(物理)标志:
pwd -P
cd -P ..
答案 1 :(得分:5)
如果您执行以下操作,则应该没问题。
1)首先你按照你的符号链接:
[jfv@localhost ~]$ cd myproject
2)现在执行以下命令:
[jfv@localhost myproject]$ cd -P ./
3)现在,您可以检查您的位置,您将看到您在物理目录
[jfv@localhost myproject]$ pwd
输出如下:
/usr/local/projects/myproject
现在,你所做的一切都将是本地的而不是符号链接。
答案 2 :(得分:3)
以编程方式,您可以使用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;
}