3.4.1 階層式檔案系統
在第二章的 2.1.4 這一節裡面,我們曾經簡單的介紹了 Linux
階層式檔案系統的結構,也說明了磁碟分割區跟檔案系統之間的關係,這邊我們要再作一個更詳細的說明,如圖3-1就是階層式檔案系統目錄樹的示意圖。

圖 3-1:階層式檔案系統目錄樹。
|
整個 Linux 檔案系統的最上層是根目錄 "/",底下再一層一層、分門別類的擁有許多的目錄與檔案,所以稱之為
"階層式" 的檔案系統,其實 Linux
底下的目錄也是一個檔案,只是裡面放的不是使用者的資料或程式,而是放位於此目錄底下一層的檔案的名稱、所在位置...
等資料,要在 Linux
的檔案系統裡面指定一個檔案的名稱有兩種方法,一種是指定絕對路徑,一種是指定相對路徑。
絕對路徑一定是由"/"開頭,從根目錄開始,一層一層的寫目錄的名稱,目錄跟目錄中間再以"/"相隔,所以上圖的兩個名為
"log" 的檔案,用絕對路徑來講的話,一個是
"/home/platin/log",一個是 "/tmp/log",Linux
不允許同一個目錄底下有兩個相同名稱的檔案,所以 Linux
系統裡面所有的絕對路徑檔名都是唯一的,不會有重複。
指定檔案的名稱的時候假如不用"/"開頭的,就表示是用相對路徑,相對路徑是以當前所在的目錄起算,並且用一個小數點"."表示當前目錄,兩個小數點".."表示上一層目錄,例如,假如我現在位於
/home/platin 底下,"cat log" 看到的就是 "/home/platin/log"
這個檔案,"cat ./log" 也是 "/home/platin/log" 這個檔案,".."表示上一層目錄,所以
/home/platin/ 底下的 "../john/" 就是 "/home/john/"
這個目錄,"/tmp/log" 可以表示為 "../../tmp/log",當前所在的目錄不同的時候,對同一個檔案的相對路徑表示法就不一樣,假如在
"/tmp/" 目錄底下,"cat log" 看到的就是 "/tmp/log"
了。
此外還可以用 '~' 符號開頭來表示使用者的家目錄,Linux
底下每個人都有一個自己的 "家目錄",這個目錄通常是在
"/home/"
底下跟使用者帳號同名的目錄,系統預設會讓使用者對自己家目錄底下的檔案有完整的存取權,這個目錄就是使用者自己的一塊小天地,可以存放自己的資料、程式,使用者剛登入系統的時候就是在自己的家目錄底下,以使用者
platin、家目錄在 "/home/platin" 為例子,"ls ~/" 就是
"ls /home/platin/" , "~/log" 就是 "/home/platin/log"
這個檔案,此外,'~'
後面加上使用者名稱的話,可以用來指到系統上其他使用者的家目錄,"~john/"
就相當於 "/home/john"。
讀者應該要熟悉利用上面提到的幾種方式在 Linux 系統裡面 "漫遊",底下便是一個例子,利用我們前面提到過的
"cd" 跟 "pwd" 指令,又,不要忘了 bash 按 [Tab]
鍵自動補齊的功能,遇到長一點的檔名,就多按按 [Tab] 喔:
[platin@h2 platin]$ pwd
/home/platin
我的帳號是 "patin",剛進到系統是在我的家目錄
"/home/platin" 底下,從這裡出發。
[platin@h2 platin]$ cd /usr
[platin@h2 /usr]$ pwd
/usr
[platin@h2 /usr]$ cd X11R6/lib/X11/
[platin@h2 X11]$ pwd
/usr/X11R6/lib/X11
先用絕對路徑進到 "/usr" 目錄,然後進 "X11R6/lib/X11",所以現在來到了
"/usr/X11R6/lib/X11" 囉;在打 "X11R6/lib/X11"
的時候試著這樣按看看 -> "X[Tab]l[Tab]X[Tab]"。
[platin@h2 X11]$ cd ../../bin/
[platin@h2 bin]$ pwd
/usr/X11R6/bin
到上兩層底下的 "bin" 目錄,所以在 "/usr/X11R6/bin"
底下。
[platin@h2 bin]$ cd ~
[platin@h2 platin]$ pwd
/home/platin
回家囉。
|