Changing parent directory (../) with symlinks
Bash (as well as ksh, zsh, and even ash) track directory changes so that cd /foo/bar && cd ..
always takes you to /foo
even if bar
is a symlink. Pass the -P
option to cd
to ignore the tracked change and follow the “physical” directory structure:
cd -P ..
See help cd
or man builtins
for documentation about the bash builtin cd
.
If you really dislike the directory tracking feature, you can turn it off with set -P
in bash (set -o no_chase_link
in zsh).
You can also use readlink to find the physical path to this directory, then go one directory higher:
cd $(readlink -f .)/..
One method you could use is to use an alias instead of a symlink to take you to ~/a/really/long/path. That's the method I use, since then I can just type a simple 1/2/et cetera letter command instead of cd symlink