Bash

使 cd 跟隨符號連結

  • June 13, 2018

我將我的程式碼作為 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/$

對於任何 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.

引用自:https://unix.stackexchange.com/questions/55713