我有一个符号链接
~/link -> ~/a/really/long/path
当我做
cd ~/link
cd ..
它带我去
~
但我想去
~/a/really/long
有没有办法做到这一点?
我正在使用 bash。
答案1
Bash(以及 ksh、zsh 甚至 ash)跟踪目录更改,以便cd /foo/bar && cd ..
始终将您带到/foo
即使bar
是符号链接。传递-P
选项以cd
忽略跟踪的更改并遵循“物理”目录结构:
cd -P ..
请参阅help cd
或man builtins
有关 bash 内置命令的文档cd
。如果您确实不喜欢目录跟踪功能,可以在set -P
bash 中(set -o no_chase_link
在 zsh 中)将其关闭。
答案2
您还可以使用 readlink 查找该目录的物理路径,然后转到上一级目录:
cd $(readlink -f .)/..
答案3
您可以使用的一种方法是使用别名而不是符号链接将您带到 ~/a/really/long/path。这就是我使用的方法,从那时起我可以只输入一个简单的 1/2/et cetera letter 命令而不是 cd symlink