Ext4 檔案系統的 Linux 核心支援不區分大小寫的操作

Ted Ts'o,ext2/ext3/ext4 檔案系統的作者, 普里尼亞爾 到Linux-next分支,在此基礎上將形成Linux 5.2核心的發布,一組 變化,在 Ext4 檔案系統中實作對不區分大小寫操作的支援。 這些補丁還添加了對檔案名稱中 UTF-8 字元的支援。

使用新屬性「+F」(EXT4_CASEFOLD_FL)可以選擇啟用與各個目錄相關的不區分大小寫的操作模式。 當對目錄設定該屬性時,所有對目錄中的檔案和子目錄的操作都會不考慮字元大小寫,包括搜尋和開啟檔案時都會忽略大小寫(例如檔案Test.txt、此類目錄中的test.txt和test.TXT 將被視為相同)。 預設情況下,除了具有“+F”屬性的目錄外,檔案系統仍然區分大小寫。 為了控制不區分大小寫模式的包含,提供了一組修改後的實用程式 e2fsprogs.

這些補丁是由 Collabora 員工 Gabriel Krisman Bertazi 準備的,並被接受 第七 之後的嘗試 三年 評論的發展和消除。 此實作不會更改磁碟儲存格式,僅在更改 ext4_lookup() 函數中的名稱比較邏輯並取代 dcache(目錄名稱查找快取)結構中的雜湊層級上運作。 「+F」屬性的值儲存在各個目錄的 inode 中,並傳播到所有子檔案和子目錄。 編碼資訊儲存在超級區塊中。

為了避免與現有檔案的名稱衝突,只能在安裝階段啟用檔案和目錄名稱中的 Unicode 支援的檔案系統中的空白目錄上設定「+F」屬性。 啟動「+F」屬性的目錄元素的名稱會自動轉換為小寫並以這種形式反映在 dcache 中,但以使用者最初指定的形式保存在磁碟上,即儘管處理名稱時不考慮大小寫,但名稱的顯示和保存不會遺失有關字元大小寫的資訊(但係統不允許您建立具有相同字元但大小寫不同的檔案名稱)。

來源: opennet.ru

添加評論