让 cd 跟随符号链接

让 cd 跟随符号链接

我将代码作为 sshfs 安装在我的主目录中,但层次结构很难记住,因此我在主目录中创建了一个指向该目录的符号链接。有没有办法让当我 cd 到该符号链接时,它实际上会 cd 到该目录,而不是 cd 到该符号链接?

如果问题不清楚,这是我正在寻找的示例:

foo@foo:~$ ls -l
lrwxrwxrwx  1 foo      foo              5 2012-11-14 08:20 foo -> bar/bar

foo@foo:~$ cd foo
foo@foo:~/bar/bar/$

答案1

对于 的任何 POSIX 实现cd,您都可以使用该-P选项来执行此操作。

$ help cd
...
    -P      use the physical directory structure without following symbolic links
...

您可以在这里看到它的实际效果:

$ mkdir foo
$ ln -s foo bar
$ cd -P bar
$ pwd
/tmp/tmp.WkupF2Ucuh/foo

如果您希望这是默认行为,您可以为 创建一个别名cd,如下所示:

alias cd='cd -P'

...或使用set -o physical.对于 tcsh,等效命令是set symlinks=chase.

相关内容