I have a project in its own directory:
/dir/to/project/
I have a symbolic link to that directory on the desktop:
/home/user/Desktop/project/
When I double click on that link, the directory window that opens is:
/home/user/Desktop/project/
instead of the real one, /dir/to/project
.
The same happens with the command line (Bash).
Is it possible to get what I wish, i.e. go to the directory pointed to, instead of the symbolic one?
Note: the windows environment I am using now is Xfce, but I am also interested in a generic answer.
Answer
In bash
the cd
builtin uses -P
and -L
switches; pwd
understands them in the same way:
user@host:~$ ln -s /bin foobar
user@host:~$ cd -L foobar # follow link
user@host:~/foobar$ pwd -L # print $PWD
/home/user/foobar
user@host:~/foobar$ pwd -P # print physical directory
/bin
user@host:~/foobar$ cd - # return to previous directory
/home/user
user@host:~$ cd -P foobar # use physical directory structure
user@host:/bin$ pwd -L # print $PWD
/bin
user@host:/bin$ pwd -P # print physical directory
/bin
Moreover cd ..
may be tricky:
user@host:/bin$ cd
user@host:~$ cd -L foobar
user@host:~/foobar$ cd -L .. # go up, to ~/
user@host:~$ cd -L foobar
user@host:~/foobar$ cd -P .. # go up, but not to ~/
user@host:/$
See help cd
and help pwd
. Note that you may also have an executable (i.e. not a shell builtin) like /bin/pwd
that should behave similarly. In my Kubuntu the difference is the pwd
builtin without any option uses -L
while /bin/pwd
by default uses -P
.
You can adjust the default behavior of cd
builtin by set -P
(cd
acts as cd -P
) and set +P
(cd
acts as cd -L
). See help set
for details.
Comments
Post a Comment