Bash

cd 命令的 CDPATH 中的“替代目錄名稱”是什麼?

  • August 7, 2020

在 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"

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