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
微信公眾號:入門小站
