文件名稱
編輯文件名標識磁盤上或數據傳輸中的文件系統中的文件。文件通常由目錄名額外表征,從而產生完整的路徑名。只有這種組合形成的完整路徑名通常是唯 一的。每個目錄(文件夾)的兩個文件的相同命名是不可能的 - 在這種情況下,文件名可以由系統規范化,因此大小寫的變化沒有區別(不區分大小寫)。可選的文件名,擴展是文件名的一部分。
屬性
編輯根據操作系統或文件系統的不同,一個文件名可以由幾個部分組成。各個部分由通常不屬于指定名稱的特定字符分隔。這樣的字符是一個句點,. ,后面跟著一個文件名后綴,表示一個文件的類型;文件名擴展列表提供了一個概覽。
某些操作系統使文件的處理完全依賴于相應的文件名 ns 擴展名。其他操作系統根據內容識別文件類型——例如,根據所謂的幻數,它可用于相對可靠地確定特定文件類型,或通過存儲在與文件關聯的替代數據流中的數據,例如關于文件類型和創建它的程序。但即使在不從文件名擴展名派生文件類型的系統上,文件名也隨它一起提供——例如,因為它簡化了數據交換。
文件名的最 大長度受操作系統和磁盤文件系統的限制。例如,使用 Joliet 文件系統的 CD-ROM 最多可以使用 64 個字符。操作系統中路徑名的最 大長度也可能導致間接限制。
文件名是否區分大小寫字母同樣取決于所使用的操作系統和各自的文件系統。特別是歷史文件系統通常不設計為區分大小寫,即它們存儲文件名 n .一般用大寫字母。然而,大多數當前的文件系統總是保留大小寫,即它們在創建或重命名文件時使用大寫和小寫字母 - 使用的操作系統或相應的編程接口然后可以設計為既不區分大小寫又區分大小寫。
文件系統
編輯在英語中,大小寫之間的明確區分稱為“case-sensitivity”,如果不區分大小寫,則稱為“case-insensitivity”。操作系統中的文件系統實現要么區分大小寫(區分大小寫) 或不區分大小寫(不區分大小寫字母)。
每個文件可以取兩個 6 字符的名稱,每個用戶都有自己的目錄:DEV;DIR:PRTONE PRTTWO 最初只有 14 個字符,1983 年隨著伯克利快速文件系統 (4.2BSD) 增加到 255 個字符。
使用 UTF-8 編碼和非 ASCII 字符時,可用 255 個字節,但少于 255 個字符。編碼不規范; UTF-8 通常用作默認值。
當使用長 Unicode 路徑時,只有 255 個字符是可能的 APFS 是 HFS++ 的繼任者,并針對閃存和 SSD 進行了優化,但它也適用于硬盤驅動器和其他數據存儲設備。
實施
編輯文件系統具有特定的內部結構,其中大部分與文件系統設計所針對的參考系統的結構相對應。如果操作系統也不知道,文件系統通常沒有權限管理。
這方面的一個例子是 PC DOS 或 MS-DOS 的 FAT 文件系統:由于 DOS 本身不是多用戶系統,它也不存儲文件和目錄的訪問權限。這同樣適用于以通常方式存儲為本地時間或世界時間,或大小寫約定的文件的創建和訪問時間。
區分大小寫
大小寫字母之間的區別稱為“區分大小寫”。使用文件名n 時,系統處理文件名n 是區分大小寫(嚴格區分)還是不區分大小寫或不區分大小寫(不區分大小寫)會有很大的不同。
在區分大小寫的系統上,文件名(以大寫字母開頭)與文件名(全部小寫)或 FILENAME(全部大寫)指的不是同一個文件桿)。對于這樣一個系統上的用戶來說,必須堅持目錄列表中的拼寫,因為只有名稱為文件名的文件確實存在,才能打開和處理它。
另一方面,如果只有一個小寫的同名文件 filename,系統會正確地發出一個錯誤,即名稱為文件名的文件不存在。
對于計算機系統,不區分大小寫意味著它必須做額外的工作,因為它必須在每次請求時將文件名n轉換為所有可能的大小寫,直到找到該名稱的文件。這樣的系統只能在它嘗試了所有的可能性之后發出一個錯誤消息,指出文件不存在。
一個系統原則上是否使用case-insensitive 文件名n 也會對所使用的文件系統(為操作系統開發和與操作系統一起開發)產生影響,因為如果操作系統和它的API 沒有根本區別,它就沒有來拯救他們。
相反,對于區分大小寫的系統,絕 對有必要在文件系統中保留準確的拼寫。但是,當前的文件系統至少設計為保留大小寫并接收拼寫 - 因此在大多數情況下,可以使用具有通常的文件名 ns 約定的非系統文件系統而不會出現任何問題。
互操作性
FAT 文件系統(FAT12、FAT16 和 FAT32 的變體)在幾乎所有操作系統上都實現。然而,因為文件系統對底層系統做了某些假設——并且只以大寫字母存儲文件名n,這些是例如,在類 Unix 操作系統上,文件系統驅動程序默認將它們轉換為小寫。
對于 VFAT 擴展,僅當文件名符合 8.3 約定且在 FAT 中為大寫時,才會執行此轉換。FAT 的其他擴展,如 UMSDOS,如果文件未保存在 Unix 上并以 UMSDOS 格式保存,則獨立實現此類轉換。但是,由于Unix/Linux區分大小寫字母,文件只能識別轉換后的大小寫或存儲在VFAT中的大小寫。
因此,重要的不僅僅是文件系統,還有操作系統以及它如何處理存儲在文件系統中的信息(文件名、權限、日期)。例如,文件系統驅動程序解決了文件系統的特殊性,但操作系統環境阻止了這一點。一個例子是 Unix shell 如何處理通配符。
在 Linux 下,不區分大小寫內置于 AFFS 的文件系統驅動程序中,但不在 shell 中。例如,如果文件名文件名(有時大寫)存儲在 Amiga“快速文件系統”上,則可以在 Unix shell 中使用 rm 文件名(全部小寫)將其刪除,因為文件系統驅動程序執行轉換。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/358173/