檔案系統:介面

目錄(directory)

想像一本大型工具書後面的索引:它本身不包含各章節,它只列出名稱、告訴你每一個在第幾頁。目錄就是檔案版的那個索引。它就是你平常稱為資料夾的東西,它的工作是把人類友善的名稱對應到那些名稱所指的檔案。沒有目錄,你就得用內部編號去記住每一個檔案——那是無法生活的方式。

巧妙之處在這裡:目錄本身就只是一種特殊的檔案。它的內容不是你的文件文字或照片像素,而是一張項目表,每一個項目把一個名稱和「足以找到對應檔案中繼資料的資訊」配在一起(在 Unix 式的系統裡,就是名稱加上一個 inode 號碼)。當你要求開啟 report.txt 時,作業系統讀取目前目錄的這張表、找到名稱為 report.txt 的項目、循它找到檔案的中繼資料、再從那裡找到資料。因為目錄是一個檔案,所以它可以被列出、它有自己的權限、而且它可以包含命名「其他目錄」的項目——這就是資料夾如何巢狀地裝進資料夾。

為什麼重要:目錄把一堆平鋪的檔案,變成一個有組織、可導覽的命名空間。目錄被允許如何彼此指涉,定義了整個檔案系統的樣貌,從早期的單層方案到我們今天用的樹狀結構。一個關鍵的澄清:目錄並不是在「實際裝著檔案位元組」的意義上包含檔案;它只持有檔案的名稱與指標。正是如此,一個檔案才能同時出現在兩個目錄裡(硬連結)——位元組是共享的,不同的只是名稱項目。

列出一個資料夾會看到 report.txt、photo.jpg、以及一個子資料夾 backups。在內部,這個目錄檔持有的項目像是("report.txt", inode 812)、("photo.jpg", inode 4490)、("backups", inode 77)。目錄存的是名稱與指標,不是檔案的位元組。

目錄是一個檔案,它的內容是名稱對應到檔案的對照。

目錄並不實際包含檔案的位元組,只有它的名稱和指向其中繼資料的指標。正是這種分離,使得一個檔案能同時被好幾個目錄命名(硬連結)。

又稱
folder資料夾