Bash
cd 命令的 CDPATH 中的“替代目錄名稱”是什麼?
在 cd、bash 幫助頁面中:
The variable CDPATH defines the search path for the directory containing DIR. Alternative directory names in CDPATH are separated by a colon (:). A null directory name is the same as the current directory. If DIR begins with a slash (/), then CDPATH is not used.
但是我不了解“替代目錄”的概念,也找不到說明在命令中使用冒號 (
:
)的範例cd
。
預設情況下未設置該變數(至少在我熟悉的系統中),但可以設置為使用不同的目錄來搜尋您提供的目標目錄
cd
。這可能更容易用一個例子來說明:$ echo $CDPATH ## CDPATH is not set $ cd etc ## fails: there is no "etc" directory here bash: cd: etc: No such file or directory $ CDPATH="/" ##CDPATH is now set to / $ cd etc ## This now moves us to /etc /etc
換句話說,預設行為
cd foo
是“移動到名為 ‘foo’ 的目錄,該目錄是目前目錄或CDPATH 中給定的任何其他目錄的子目錄”。CDPATH
未設置時,將cd
僅在目前目錄中查找,但設置時,它還將在您設置的任何目錄中查找匹配項。冒號不與 一起使用
cd
,它用於分隔要設置的目錄CDPATH
:CDPATH="/path/to/dir1:/path/to/dir2:/path/to/dirN"