Shell

cd 和 ls 在指向目錄的軟連結中表現不同

  • September 29, 2014

當我們通過軟連結 cd 進入一個目錄時,我觀察到:

  1. ls ..將顯示連結目錄的父目錄的內容,而cd ..將在軟連結的父目錄下。為什麼它們不同?
  2. cd ..後跟 tab 不提供任何完成選項,既不是連結目錄的父目錄的內容,也不是軟連結的父目錄的內容。為什麼會這樣?
  3. 在上述情況下,我們如何知道在所有目錄命令中,哪些命令適用於連結目錄或其軟連結?

因為 bash(可能還有其他 shell)會跟踪您下降的路徑,包括符號連結,以使您的路徑看起來像下降的路徑。

Bash 知道您是如何進入工作目錄的,因為cd它必須是內置的 shell。當您執行ls ..shell 時,不能替換“符號路徑”,因為grep ..它也是有效的,並且翻譯..會非常混亂。

事實上,shell 目前有兩種解釋,..可以說是令人困惑的,就好像它根本沒有試圖提供幫助一樣。

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