How to move one directory back in unix / linux when path contains symbolic links?

manav m-n picture manav m-n · Jun 9, 2012 · Viewed 28.9k times · Source

I have created a symbolic link to a deeply nested directory. Using symbolic link i can move to that directory from my home directory. I want to move one directory back from the target directory but the shell comes back to the home directory.

[root@pe1800xs ~]# pwd
/root

[root@pe1800xs ~]# mkdir -p abc/def/ghi/jkl/mno/pqr

[root@pe1800xs ~]# ln -s abc/def/ghi/jkl/mno/pqr/ xyz

[root@pe1800xs ~]# cd xyz

[root@pe1800xs xyz]# pwd
/root/xyz

[root@pe1800xs xyz]# pwd -P
/root/abc/def/ghi/jkl/mno/pqr

[root@pe1800xs xyz]# cd ..

[root@pe1800xs ~]# pwd
/root

What I want to achieve is that when I do cd.. in pqr directory the shell should come to mno directory.

Answer

felixgaal picture felixgaal · Jun 9, 2012

You must use

cd -P xyz

to enter into that directory to follow the original structure of folders, then you can move as you wish because you have resolved the link to the real path.