How do I change my pwd to the real path of a symlinked directory?
If you do the following you should be OK.
1) First you follow your symlink:
[jfv@localhost ~]$ cd myproject
2) Now you execute the following command:
[jfv@localhost myproject]$ cd -P ./
3) Now, you can check your location and you will see that you are on the physical directory
[jfv@localhost myproject]$ pwd
The output will be as follows:
/usr/local/projects/myproject
Now, everything you do will be local and not on the symlink.
Programmatically, you would do this with the getcwd library function:
#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;}