Bash

防止’cd’記住遍歷的符號連結

  • January 24, 2012

假設您有目錄 ~/mytool 軟連結到 /usr/local/mytool。然後cd mytool將目前目錄保留為 ~/mytool,這可能會導致腳本行為不正確。有沒有辦法避免這種行為?

通過一些Google搜尋,我發現您可以按如下方式實現:

cd $1 ; cd `pwd -P`

沒有切換到“cd”嗎?環境變數?

如果set -P在 bash 中鍵入所有命令,例如 cd,pwd 將遵循物理路徑。否則,您可以使用cd -Ppwd -P對預設行為進行臨時更改。

從 bash 的聯機幫助頁:

         -P      If  set,  the shell does not follow symbolic links when executing commands such as cd that change the cur-
                 rent working directory.  It uses the physical directory structure instead.  By default, bash  follows  the
                 logical chain of directories when performing commands which change the current directory.

例如,要使其永久化,請將其放入您的~/.bashrc文件中。

引用自:https://serverfault.com/questions/352933