row*_*ran 87 bash cd-command symlink
我将我的代码作为 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/$
Run Code Online (Sandbox Code Playgroud)
    Chr*_*own 125
对于 的任何 POSIX 实现cd,您都可以使用该-P选项来执行此操作。
$ help cd
...
    -P      use the physical directory structure without following symbolic links
...
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到它的实际效果:
$ mkdir foo
$ ln -s foo bar
$ cd -P bar
$ pwd
/tmp/tmp.WkupF2Ucuh/foo
Run Code Online (Sandbox Code Playgroud)
如果您希望这是默认行为,您可以为 创build一个别名cd,如下所示:
alias cd='cd -P'
Run Code Online (Sandbox Code Playgroud)
...或使用set -o physical. 对于 tcsh,等效的命令是set symlinks=chase.