Ext4 ファイル システム用の Linux カーネルには、大文字と小文字を区別しない操作のサポートが含まれています

ext2/ext3/ext4 ファイル システムの作者である Ted Ts'o 氏は、 受け入れた Linux 5.2 カーネルのリリースが形成される Linux-next ブランチに、一連の 変化、Ext4 ファイル システムで大文字と小文字を区別しない操作のサポートを実装します。 このパッチでは、ファイル名における UTF-8 文字のサポートも追加されています。

大文字と小文字を区別しない動作モードは、新しい属性「+F」(EXT4_CASEFOLD_FL) を使用して、個々のディレクトリに関してオプションで有効になります。 この属性がディレクトリに設定されている場合、その内部のファイルおよびサブディレクトリに対するすべての操作は、文字の大文字と小文字を考慮せずに実行されます。これには、ファイル (Test.txt、ファイルなど) を検索して開くときにも大文字と小文字が無視されます。このようなディレクトリ内の test.txt と test.TXT は同じとみなされます)。 デフォルトでは、「+F」属性を持つディレクトリを除いて、ファイル システムは引き続き大文字と小文字を区別します。 大文字と小文字を区別しないモードの組み込みを制御するために、修正されたユーティリティのセットが提供されています e2fsprogs.

パッチは Collabora の従業員である Gabriel Krisman Bertazi によって作成され、次のように受け入れられました。 第7 その後の試行 XNUMX年 コメントの作成と削除。 この実装はディスク ストレージ形式に変更を加えず、ext4_lookup() 関数の名前比較ロジックを変更し、dcache (ディレクトリ名ルックアップ キャッシュ) 構造内のハッシュを置き換えるというレベルでのみ機能します。 「+F」属性の値は、個々のディレクトリの i ノード内に保存され、すべてのサブファイルとサブディレクトリに伝播されます。 エンコード情報はスーパーブロックに格納されます。

既存のファイル名との衝突を避けるため、「+F」属性は、マウント段階でファイル名とディレクトリ名の Unicode サポートが有効になっているファイル システムの空のディレクトリにのみ設定できます。 「+F」属性が有効になっているディレクトリ要素の名前は、自動的に小文字に変換され、dcache 内のこの形式に反映されますが、ユーザーが最初に指定した形式でディスクに保存されます。 大文字と小文字に関係なく名前が処理されるにもかかわらず、名前は文字の大文字と小文字の情報を失うことなく表示および保存されます (ただし、システムでは、同じ文字で大文字と小文字が異なるファイル名を作成することはできません)。

出所: オープンネット.ru

コメントを追加します