使cd跟随符号链接


76

我在主目录中将代码作为sshfs挂载,但是层次结构很难记住,因此我在主目录中创建了一个指向该目录的符号链接。有没有一种方法可以使当我cd到该符号链接时,而不是cding到该符号链接,它将实际上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/$

Answers:


105

对于的任何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


如果您没有Posix实现...?
斯科特·比格斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.