一、目錄與路徑
1.相對(duì)路徑與絕對(duì)路徑
因?yàn)槲覀冊(cè)贚inux系統(tǒng)中,常常要涉及到目錄的切換,所以我們必須要了解 "路徑" 以及 "相對(duì)路徑" 與 "絕對(duì)路徑" 的概念。
在之前的學(xué)習(xí)中,就反復(fù)的強(qiáng)調(diào)了Linux的目錄是 "樹(shù)狀目錄" 。假設(shè)我們需要在任意一個(gè)目錄下切換到另一個(gè)目錄下,通常是使用的是 cd 這個(gè)命令,此時(shí)在寫切換的目錄名時(shí)就有兩種書寫方式,也就是我們常說(shuō)的使用 "相對(duì)路徑" 與 "絕對(duì)路徑" 來(lái)書寫
我們知道,在Linux的系統(tǒng)中完整的文件路徑名的長(zhǎng)度可以達(dá)到4096個(gè)字符,所以一個(gè)文件路徑名太長(zhǎng)的話,此時(shí)寫絕對(duì)路徑時(shí)就非常的麻煩,而且可能寫錯(cuò),所以此時(shí)選擇使用相對(duì)路徑來(lái)寫就會(huì)簡(jiǎn)單一些。
但是,對(duì)于文件的正確性來(lái)說(shuō),絕對(duì)路徑是比較好的。當(dāng)我們?cè)趯?shell scripts 時(shí),請(qǐng)務(wù)必使用絕對(duì)路徑。雖然可能寫絕對(duì)路徑會(huì)稍顯麻煩,但是這種寫法是絕對(duì)不會(huì)有問(wèn)題的。
2.cd (切換目錄)
這個(gè)命令應(yīng)該是Linux中用的頻繁的一個(gè)命令之一了,因?yàn)槲覀兘?jīng)常需要進(jìn)行目錄的切換。在詳解這個(gè)命令之前,首先得補(bǔ)充一個(gè)重要的知識(shí),就是我們常用的一些比較特殊的目錄:
. 代表當(dāng)前目錄 .. 代表上一層目錄 - 代表前一個(gè)工作目錄 ~ 代表【目前用戶身份】所在的自家目錄 ~account 代表 account 這個(gè)用戶的自家家目錄
我們通過(guò)實(shí)例來(lái)看一下這些特殊命令的使用方法:
[root@xiaoluo ~]# cd /home # 此時(shí)我們進(jìn)入到了home目錄下 [root@xiaoluo home]# cd . # .表示當(dāng)前目錄,所以當(dāng)前還是在home目錄下 [root@xiaoluo home]# cd .. # ..表示上一層目錄,所以此時(shí)就進(jìn)入到了 / 目錄下 [root@xiaoluo /]# cd ~ # ~表示【目前用戶身份】所在的自家目錄,當(dāng)前用戶就是root,所以就進(jìn)入到了root這個(gè)目錄下 [root@xiaoluo ~]# cd ~xiaoluo # ~account表示 account 這個(gè)用戶的自家家目錄 ,我如果想進(jìn)入 xiaoluo 這個(gè)用戶的主目錄,輸入 cd ~xiaoluo即可 [root@xiaoluo xiaoluo]# cd - /root # -表示前一個(gè)工作目錄,我們的前一個(gè)工作目錄就是在root下,所以此時(shí)又會(huì)進(jìn)入到root這個(gè)目錄下 [root@xiaoluo ~]# cd ../usr # 如果我們需要進(jìn)入到usr目錄下,這里可以寫成相對(duì)路徑形式也可以寫成絕對(duì)路徑形式 [root@xiaoluo usr]#
通過(guò)上面的幾個(gè)實(shí)例我們應(yīng)該對(duì)cd 這個(gè)命令有了深入的了解了,而且也知道了那幾個(gè)特殊目錄所代表的含義。
3.pwd (顯示當(dāng)前所在的目錄)
這個(gè)命令對(duì)于我們來(lái)說(shuō)也是一個(gè)很重要的命令,因?yàn)樵贚inux下我們都是通過(guò)在命令行輸入命令,所有如果進(jìn)入到了一個(gè)目錄下,就不會(huì)像windows那樣直觀的顯示出當(dāng)前所在的路徑,此時(shí)我們就可以輸入 pwd 這個(gè)命令來(lái)顯示我們當(dāng)前所在的目錄。
[root@xiaoluo ~]# pwd [-P] 參數(shù): -P :顯示出確實(shí)的路徑,而非使用鏈接 (link) 路徑。(P是大寫) 范例: [root@xiaoluo ~]# pwd /root <== 顯示出當(dāng)前所在的目錄 [root@xiaoluo ~]# cd /var/mail [root@xiaoluo mail]# pwd /var/mail [root@xiaoluo mail]# pwd -P /var/spool/mail <== 怎么回事?有沒(méi)有加 -P 差很多 [root@xiaoluo mail]# ls -l /var/mail lrwxrwxrwx. 1 root root 10 3月 30 10:37 mail -> spool/mail # 看到這里應(yīng)該知道為啥了吧?因?yàn)?/var/mail 是連結(jié)文件,連結(jié)到 /var/spool/mail # 所以,加上 pwd -P 的參數(shù)后,會(huì)不以連結(jié)文件的數(shù)據(jù)顯示,而是顯示正確的完整路徑!
4.mkdir (建立新目錄)
[root@xiaoluo ~]# mkdir [-mp] 目錄名稱 參數(shù): -m :配置文件目錄的權(quán)限!我們可以自己設(shè)定自己想要的權(quán)限,而不需要使用umask定義的默認(rèn)權(quán)限 -p :幫助你直接將所需要的目錄遞歸建立起來(lái)! 范例: [root@xiaoluo ~]# cd /home [root@xiaoluo home]# mkdir test <== 建立一名為 test 的新目錄 [root@xiaoluo home]# mkdir test1/test2/test3/test4 mkdir: 無(wú)法創(chuàng)建目錄"test1/test2/test3/test4": 沒(méi)有那個(gè)文件或目錄 [root@linux tmp]# mkdir -p test1/test2/test3/test4 # 加了這個(gè) -p 的參數(shù),可以自行幫我們建立多層目錄! [root@xiaoluo home]# mkdir -p test1/test2/test3/test4 [root@xiaoluo home]# mkdir -m 711 test2 [root@xiaoluo home]# ls -l drwxr-xr-x. 2 root root 4096 4月 21 13:08 test drwxr-xr-x. 3 root root 4096 4月 21 13:10 test1 drwx--x--x. 2 root root 4096 4月 21 13:11 test2# 仔細(xì)看上面的權(quán)限部分,如果沒(méi)有加上 -m 來(lái)強(qiáng)制設(shè)定屬性,系統(tǒng)會(huì)使用默認(rèn)屬性。如果加上了-m 這個(gè)參數(shù),我們就可以自己定義權(quán)限了
5.rmdir (刪除"空"目錄)
[root@xiaoluo ~]# rmdir [-p] 目錄名稱 參數(shù): -p :連同上層『空的』目錄也一起刪除 范例: [root@xiaoluo home]# ls -l drwxr-xr-x. 2 root root 4096 4月 21 13:08 test drwxr-xr-x. 3 root root 4096 4月 21 13:10 test1 drwx--x--x. 2 root root 4096 4月 21 13:11 test2 [root@xiaoluo home]# rmdir test [root@xiaoluo home]# rmdir test1 rmdir: 刪除 "test1" 失敗: 目錄非空 [root@xiaoluo home]# rmdir -p test1/test2/test3/test4/ [root@xiaoluo home]# ls -l drwx--x--x. 2 root root 4096 4月 21 13:11 test2 # 利用 -p 這個(gè)參數(shù),立刻就可以將 test1/test2/test3/test4 一次刪除~ # 不過(guò)要注意的是,這個(gè) rmdir 僅能【刪除空的目錄】!