Linux 伺服器系統管理第三章 外殼命令操作 上一頁    下一頁

3-4 階層式目錄結構

內容:

  • 3-4-1 階層式檔案系統

  • 3-4-2 檔案與目錄名稱

  • 3-4-3 絕對路徑

  • 3-4-4 相對路徑

  • 3-4-5 檔案屬性

  • 3-4-6 家目錄與工作目錄

  • 3-4-7 顯示檔案系統結構 - tree

3-4-1 階層式檔案系統

『階層式』(Hierarchical結構就像樹根的形狀一樣,樹根是最源頭端點(就是樹的頭部,一般稱為 root),由這個端點一直往下延伸下去。由樹根往下延伸另一個新的端點,新的端點可能是結束點,則稱為『枝葉』(Leaf;也可能由新的端點再往下延伸到其他端點或枝葉,則該端點稱之為『節點』(Node。既然,節點是由另一個節點所產生,一般稱產生的節點為『父節點』(Parent node),而由父節點所產生的另一節點,則稱之為『子節點』(Child node,整個家族的形狀猶如『樹狀』(Tree一般。

Unix 系統的檔案結構就如同圖 3-1 一樣,可以往下分支的節點稱之為『目錄檔案』(Directory file,不可再分支的枝葉則為『一般檔案』(Plain file。一個目錄節點可再延伸其他子目錄檔案或一般檔案,但一般檔案才是真正儲存資料的位置。一般將目錄檔案簡稱為『目錄』(Directory,而將一般檔案稱為『檔案』(File。以圖 3-4 為例。每一棵樹都有最頂端的起始點,它是所有目錄與檔案的起始點,又稱之為『根目錄』(Root directory)。某一檔案或目錄的上一層為其『父目錄』(Parent directory,由某一目錄所延伸的次目錄則稱為該目錄的『子目錄』(Child directory,目錄裡可儲存子目錄(矩形)或檔案(橢圓形)。

3-4 目錄與檔案結構

3-4-2 檔案與目錄名稱

每一個檔案或目錄都有一個名稱,可由 1 14 個字母所組成(舊版本),並且分辨英文字母的大小寫。這一點與 Windows 就有很大的不同,因為Windows 的檔案名稱是不分大小寫,亦即英文字母的大寫與小寫是相同表示式。其實,Unix的檔案名稱還是允許超過 14 個字母(長度視各系統規範而定),只是超過的部分將不被系統所理會(識別長度也視各系統而定),而且幾乎任何字母皆可使用,但還是儘量不要使用特殊符號,有些系統還是禁止使用一些特殊符號,如 ’?’’&’’*’ ’%’’-‘’~’ 等等(備註:名稱規範與檔案系統型態有關,為了不同型態之間可以互通,還是建議使用標準型態)。基本上,一個檔案的表示型態為:file_name.file_type.file_ext_type,其中 file_name 名稱必須具有,其餘兩者視需要而定,可有可無(環境設定檔除外);說明如下:

  • file_name檔案名稱。可任意長度,但僅前面 14 個字元有效,儘可能不要採用特殊字元。

  • file_type副檔名。表示此檔案的型態。如 ‘.o’’.c’’.gif’’.conf’ 等等

  • file_ext_type擴充副檔名。完整檔案也許經過特殊處理,會再延伸其他的擴充型態。譬如,lucky.o 經過壓縮後會成為 lucky.o.Z

3-4-3 絕對路徑

我們期望每一個檔案在系統內都有一個獨立無二的名稱,並且能表示出該檔案的所在位置,這就須配合路徑名稱。既然目錄內包含著檔案與次目錄,由上一層目錄延伸下來的目錄連結關係,則稱為『目錄路徑』(Directory Path)。每一路徑節點為一個子目錄,可儲存檔案及該目錄所延伸的子目錄。如果由最頂端『根』目錄開始往下搜尋,每一個子目錄節點或檔案都可以給予一個獨一無二的絕對名稱,如圖 3-5 所示。Unix/Linux 系統利用一個『斜線』(/)表示最頂端的根目錄,這剛好與 Windows 顛倒,Windows 是利用『反斜線』(\)表示目錄之間的關聯。依照圖 3-3 舉出幾個範例說明如下:

  • /a_dir表示根目錄底下的子目錄,該目錄名稱為 a_dir

  • /b_dir/file_1表示根目錄之子目錄 b_dir 底下的檔案,該檔案名稱為 file_1

  • /b_dir/d_dir/e_dir/file_3表示根目錄 / 子目錄 b_dir 子目錄 d_dir 子目錄 e_dir 底下的檔案 file_3

3-5 絕對路徑名稱

由此可見,目錄就好像檔案櫃一樣,一個大的檔案櫃除了可以分割為若干個子檔案櫃,且子檔案櫃可以直接存放檔案夾,也可再分割出來幾個子檔案櫃,依此類推,一直延伸下去。唯一不同的是,子檔案櫃的空間會侷限於原檔案櫃的大小,然而子目錄並不受限於父目錄的空間,而是受限於磁碟機的空間,也就這樣,Windows 將子目錄稱之為『資料夾』。

3-4-4 相對路徑

表示檔案的位置並非一定要由根目錄開始。在許多情況之下,由目前所在位置(即是工作目錄)的關聯,來表示某一檔案位置反而會較為方便,這就是『相對路徑名稱』(Relative pathname)。相對路徑表示某一檔案的位置與目前目錄(Current directory,或稱工作目錄)之間的關係如何,一般都用下列兩個符號來表示目錄位置,如下:

  • .』(點):表示目前目錄,即是目前使用者的所在位置。

  • ..』(點點):表示目前目錄的父目錄

我們用圖 3-6 來說明相對路徑的表示法,假設目前使用者將工作目錄切換(如何切換容後介紹)到 d_dir 目錄上,在該位置相對應的目錄或檔案表示如下:

  • .:表示目前工作目錄,其絕對路徑名稱為 /b_dir/d_dir

  • ..:表示目前目錄的父目錄,其絕對路徑為 /b_dir

  • ../file_1:父目錄底下的檔案 file_1,其絕對路徑為 /b_dir/file_1

  • file_2:目前目錄底下的檔案 file_2,其絕對路徑為 /b_dir/d_dir/file_2

  • f_dir:目前目錄底下的子目錄 f_dir

  • f_dir/file_3:子目錄 f_dir 底下的檔案 file_3

3-6 相對路徑的範例

習慣上,常利用『..』來切換目錄,譬如將工作目錄切換到父目錄,操作如下:

$ pwd                    【查閱目前所在位置】

/home/student01

$ mkdir b_dir              【建立 b_dir 子目錄】

$ cd b_dir                 【切換到 b_dir 子目錄】

$ pwd                    【查閱目前所在位置】

/home/student01/b_dir

$ cd ..                     【切換到上一層目錄 ..

$ pwd                     【查閱目前所在位置】

/home/student01

3-4-5 檔案屬性

Unix/Linux 檔案可區分為下列四種型態:

  • 一般檔案(Ordinary file):一般儲存資訊的檔案,可能是文字檔(原始檔)二進位(執行檔)或影像檔等等。

  • 目錄(Directory):表示目錄的儲存位置,它可以儲存子目錄或檔案。

  • 鏈結檔案(Linking file):檔案名稱鏈接到另一個檔案位置。

  • 特殊檔案(Special file):指引到某一個週邊裝置的檔案名稱,譬如,磁碟機、滑鼠、鍵盤、終端機等等。

其中一般檔案與目錄為系統主要儲存資料使用,檔案系統內也是這兩種檔案佔大部分。鏈結檔案為兩個以上檔案名稱索引到同一個檔案內容上;特殊檔案大多指週邊裝置檔案(容後說明)。可利用 $ls –l 命令以長形(詳細內容)觀察目前目錄下的檔案,如下:

$ ls -l

total 20

-rwxrwxr-x  1 tsnien tsnien 4740 Mar  7 11:59 a.out

drwxrwxr-x  2 tsnien tsnien 4096 Mar 29 09:24 d1

-rw-rw-r--  1 tsnien tsnien   12 Mar 24 20:29 f2

lrwxrwxrwx  1 tsnien tsnien    2 Mar 24 20:28 f4 -> f2

-rw-rw-r--  1 tsnien tsnien   83 Mar  7 11:59 t1.c

由上述範例可以看出,每一個檔案包含了 7 個欄位,各欄位功能如下(以 d1 目錄為例,如圖 3-7 所示):

3-7 長型顯示目錄(ls -l)內容

  • 檔案型態與存取權限(如 drwxrwxrwx:第一個字元表示檔案型態,後面 9 個字元表示該檔案被存取的權限(將於第 3-3 節介紹),其中檔案型態表示如下:

    • - :表示一般檔案。

    • d :表示目錄檔案。

    • l :表示鏈結。

    • b, c :表示特殊檔案,Block 模式(b)或 Character 模式(c)。

    • p :表示有名稱的通道(Pipe)檔案(請查閱本書第 0 章,這裡不再介紹)。

  • 鏈結數目(如 2):表示該檔案被連結的數目,一般目錄連結數目為 2;檔案為 1

  • 擁有者(如 tsnien):表示該檔案擁有者的名稱。

  • 擁有者群組(如 tsnien):表示該檔案擁有者所屬群組的名稱。

  • 檔案大小(如 4096):表示該檔案內容大小,以位元組(Byte)為單位。

  • 最後修改日期(如 Mar 29):該檔案被建立或最後修改日期。

  • 檔案名稱(如 d1):該檔案的全名。

3-4-6 家目錄與工作目錄

本節將介紹如何建立目錄、更改目錄、刪除目錄、與管理檔案的相關命令。還未介紹之前必須先了解下列兩目錄的意思,如下:

  • 家目錄(Home directory):針對每一個使用者,系統管理者會建立一個專屬目錄給它,而使用者在此目錄上享有最高支配權,稱之為『家目錄』。當使用者登入系統時,便會直接進入家目錄,並可任意在家目錄上建立新檔案或開啟新次目錄。

login as: student01        【輸入登入帳號名稱】

student01@120.118.165.120's password:       【輸入帳號密碼】

Last login: Thu Feb  2 10:44:37 2017 from 120.118.165.107

[student01@serCourse ~]$ pwd          【查閱目前所在位置】

/home/student01

[student01@serCourse ~]$

  • 工作目錄(Working directory):使用者進入 Unix 系統之後,可能會隨著工作的需要而變更到其他目錄,處理某些任務,所在的目錄位置稱為『工作目錄』。簡單的說,工作目錄就是目前所在的位置,又稱為『目前目錄』(Current directory)。

『目錄』就如同實際環境裡的房間,當使用者進入某一個房間從事工作時,該房間便成為他的工作室,因此稱為『工作目錄』。

3-4-7 顯示檔案系統結構 - tree

人可利用 tree 命令來顯示目錄下的檔案系統結構如何,它是 tree 套件,一般系統並沒有自動安裝,需自行安裝。安裝之前必須將身分替換到 root( root 密碼),操作如下:

[student01@serCourse ~]$ tree  [測試是否安裝 tree]

-bash: /usr/bin/tree: 沒有此一檔案或目錄

[student01@serCourse ~]$ su    [替換 root 身分]

密碼:       [輸入 root 密碼]

[root@serCourse student01]# yum  -y  install  tree  [安裝 tree 套件]

Loaded plugins: fastestmirror, langpacks

 

Installed:

  tree.x86_64 0:1.6.0-10.el7

 

Complete!     [安裝完成]

[root@serCourse student01]# exit     [返回原來身分]

exit

[student01@serCourse ~]$

安裝完成後,可觀察目前目錄下檔案系統結構,如下:

 [student01@serCourse ~]$ tree   [查閱目前目錄下檔案系統]

.

├── \344\270\213\350\274\211

   ├── 2017-01-09\ 13-44-55\

….

 

8 directories, 2 files      [只有桌面上資料夾]

翻轉工作室:粘添壽

 

Linux 伺服器系統管理 - CentOS:

 

 

 

翻轉電子書系列: