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