cd 是切換所在目錄的命令,這個命令的基本信息如下。
》》》傳智播客linux培訓班,帶你從新手到大神,咨詢右下角窗口咨詢開班時間《《《
命令名稱:cd。
英文原意:change directory。
所在路徑:Shell 內(nèi)置命令。
執(zhí)行權(quán)限:所有用戶。
功能描述:切換所在目錄。
Linux 的命令按照來源方式分為兩種:Shell 內(nèi)置命令和外部命令。所謂 Shell 內(nèi)置命令,就是 Shell 自帶的命令,這些命令是沒有執(zhí)行文件的;而外部命令就是由程序員單獨開發(fā)的,是命令,所以會有命令的執(zhí)行文件。Linux 中的絕大多數(shù)命令是外部命令,而 cd 命令是一個典型的 Shell 內(nèi)置命令,所以 cd 命令沒有執(zhí)行文件所在路徑。
命令格式
[root@localhost ~]#cd [目錄名]
cd 命令是非常簡單的命令,僅有的兩個選項 -P 和 -L 的作用非常有限,很少使用:
-P(大寫)是指如果切換的目錄是軟鏈接目錄,則進入其原始的物理目錄,而不是進入軟鏈接目錄;-L(大寫)是指如果切換的目錄是軟鏈接目錄,則直接進入軟鏈接目錄。
常見用法
【例 1】基本用法
cd 命令切換目錄只需在命令后加目錄名稱即可。例如:
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]#
#進入/usr/local/src/ 目錄
通過命令提示符,我們可以確定當前所在目錄已經(jīng)切換。
【例 2】簡化用法
cd 命令可以識別一些特殊符號,用于決速切換所在目錄,這些符號如表 1 所示。
表 1 cd 命令的特殊符號
特殊符號 |
作 用 |
~ |
代表用戶的家目錄 |
- |
代表上次所在目錄 |
. |
代表當前目錄 |
.. |
代表上級目錄 |
這些簡化用法以加快命令切換,我們來試試。
[root@localhost src]# cd ~
[root@localhost ~]#
"cd~"命令可以快速回到用戶的家目錄,cd 命令直接按回車鍵也是快速切換到家目錄。
[root@localhost~]#cd /etc/
[root@localhost etc]#cd
[root@localhost ~]#
# 直接使用 cd 命令,也回到了家目錄。
再試試"cd-"命令。
[root@localhost ~]# cd/usr/local/src/
#進入/usr/local/src/目錄
[root@localhost src]# cd -/root
[root@localhost ~]#
#"cd-"命令回到進入 src 目錄之前的家目錄
[root@localhost ~]# cd-
/usr/local/src
[root@localhost src]#
#再執(zhí)行一遍"cd-"命令,又回到了 /usr/local/src/ 目錄。
再來試試"."和".."。
[root@localhost ~]# cd /usr/local/src/
#進入測試目錄
[root@localhost src]# cd..
#進入上級目錄
[root@localhost local]# pwd
/usr/local
#pwd是査看當前所在目錄的命令,可以看到我們進入了上級目 /usr/local/[root@localhost local]# cd.
#進入當前目錄
[root@localhost local]# pwd
/usr/local
#這個命令不會有目錄的改變,只是告訴大家"."代表當前目錄。
絕對路徑和相對路徑
cd 命令本身不難,但有兩個非常重要的概念,就是絕對路徑和相對路徑。初學者由于對字符界面不熟悉,所以有大量的錯誤都是因為對這兩個路徑?jīng)]有搞明白,比如進錯了目錄、打開不了文件、打開的文件和系統(tǒng)文件不一致等。所以我們先來區(qū)分一下這兩個路徑。
首先,我們先要弄明白什么是絕對、什么又是相對。其實我們一直說現(xiàn)實生活中沒有絕對的事情,沒有絕對的大,也沒有絕對的??;沒有絕對的快,也沒有絕對的慢。這只是由于參照物的不同或認知的局限,導致會暫時認為某些東西可能是絕對的、不能改變的。比如目前我們認為光速是最快的速度,我們不能突破光速的限制。但也有可能隨著技術的進步,我們會突破這一限制。
但在 Linux 的路徑中是有絕對路徑的,那是因為 Linux 有最高目錄,也就是根目錄。如果路徑是從根目錄開始,一級一級指定的,那使用的就是絕對路徑。例如:
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# cd /etc/rc.d/init.d/這些切換目錄的方法使用的就是絕對路徑。所謂相對路徑,就是只從當前所在目錄開始,切換目錄。例如:
[root@localhost /]# cd etc/
#當前所在路徑是/目錄,而/目錄下有etc目錄,所以可以切換[root@localhost etc]# cd etc/
-bash:cd:etc/:沒有那個文件或目錄
#而同樣的命令,由于當前所在目錄改變了,所以就算是同一個命令也會報錯,除非在/etc/目錄中還有一個etc目錄所以,雖然絕對路徑輸入更加煩瑣,但是更準確,報錯的可能性也更小。對初學者而言,筆者還是建議大家使用絕對路徑。本教程為了使命令更容易理解,也會盡量使用絕對路徑。
再舉個例子,假設我當前在 root 用戶的家目錄中。
[root@localhost ~]#
那么,該如何使用相對路徑進入 /usr/local/src/ 目錄中呢?
[root@localhost ~]# cd ../usr/local/src/
從我當前所在路徑算起,加入".."代表進入上一級目錄,而上—級目錄是根目錄,而根目錄中有 usr 目錄,就會一級一級地進入 src 目錄了。