cd 命令,是 Change Directory 的縮寫,用來切換工作目錄。
特殊符號 | 作 用 |
---|---|
~ | 代表當前登錄用戶的主目錄 |
~用戶名 | 表示切換至指定用戶的主目錄 |
- | 代表上次所在目錄 |
. | 代表當前目錄 |
.. | 代表上級目錄 |
概要
cd [-L|[-P [-e]]] [dir]
主要用途
- 切換工作目錄至
dir
。其中dir
的表示法可以是絕對路徑或相對路徑。 - 若參數
dir
省略,則默認為使用者的 shell 變量HOME
。 - 如果
dir
指定為~
時表示為使用者的 shell 變量HOME
,.
表示當前目錄,..
表示當前目錄的上一級目錄。 - 環境變量
CDPATH
是由冒號分割的一到多個目錄,你可以將常去的目錄的上一級加入到CDPATH
以便方便訪問它們;如果dir
以/
開頭那么CDPATH
不會被使用。 - 當
shopt
選項cdable_vars
打開時,如果dir
在CDPATH
及當前目錄下均不存在,那么會把它當作變量,讀取它的值作為要進入的目錄。
參數
dir(可選):指定要切換到的目錄。
選項
-L (默認值)如果要切換到的目標目錄是一個符號連接,那么切換到符號連接的目錄。
-P 如果要切換到的目標目錄是一個符號連接,那么切換到它指向的物理位置目錄。
- 當前工作目錄將被切換到環境變量OLDPWD所表示的目錄,也就是前一個工作目錄。
返回值
返回狀態為成功除非無法進入指定的目錄。
例子
cd
cd /
cd ~
cd ..
cd ../..
cd !$
關於切換到上一個工作目錄的說明
cd -
cd ${OLDPWD}
關於
CDPATH
定義一個基礎目錄
> export CDPATH=.:/etc # 加了點號
> mkdir /tmp/nginx
> cd /tmp
> cd nginx
# 先找當前目錄,所以當前位置在/tmp/nginx
> export CDPATH=/etc #沒有加點號
> mkdir /tmp/nginx
> cd /tmp
> cd nginx
#當前位置在/etc/nginx
如果CDPATH存在值,那么優先在CDPATH中查找並進入第一個匹配成功的,如果全部失敗那么最后嘗試當前目錄。
關於cdable_vars
shopt -s cdable_vars
new_var='~/rumenz'
cd new_var
shopt -u cdable_vars
如果一個目錄名稱在環境中沒有,但是cdable_vars是開啟的狀態,如果你定義一個別名目錄,那cd也可以識別進入這個目錄。
注意
-
該命令是 bash 內建命令,相關的幫助信息請查看
help
命令。 -
建議您在編寫腳本的過程中如有必要使用
cd
命令時,請增加必要的注釋以用於提醒閱讀者當前工作目錄,以免出現諸如找不到文件
這類問題的發生。
原文鏈接:https://rumenz.com/rumenbiji/linux-cd.html
微信公眾號:入門小站