重複したディレクトリ名をサポートするファイルシステム

重複したディレクトリ名をサポートするファイルシステム

重複したディレクトリ名をサポートするファイルシステムはありますか?

理想的には、ディレクトリ名を区別するためにインデックス(ファイルディレクトリの順序)を使用します。

これ関連。

ベストアンサー1

いいえ、名前ではなくinodeでディレクトリやファイルを開くUnixシステムコールはありません。ディレクトリエントリリスト内のディレクトリエントリの位置に関する概念も存在しない。

これが欲しいと思ったら、おそらくデザインプロセスの早い段階で間違った方向に進んでいます。

という名前のディレクトリが2つある場合、aどのディレクトリを参照しますか?a/file

ディレクトリエントリは、名前からinodeへの順序なしマッピングです。、名前をキーとして使用します。重複キーはサポートされておらず、生成できません。既存の名前を使用して操作を実行しようとすると、既存のディレクトリエントリのみが参照されます。

ディスクのデータ構造(またはカーネルのバグまたはハードウェアのバグ)を手動で編集すると、同じ名前のディレクトリが2回作成される可能性があります(他のinodeを指すこともあります)、確認する必要がありますfsck

あなたが実行しているとしましょうcat /home/peter/foo.txt。 catはディレクトリをまったく読みませんopen("/home/peter/foo.txt", O_RDONLY) = -1 ENOENT (No such file or directory)strace cat foo.txt

たぶんあなたは利用可能ですヒューズファイル名の特殊文字を奇妙な方法で解釈し、ディレクトリエントリを意味のある順序で返す「ファイルシステム」を提供します。ファイル名に表示される文字の制限に同意すると、特定の文字に特別な意味を与えることができます。したがって、/mnt/database-fuse-mount/some_dir/{2}2番目のディレクトリエントリを参照できます。または、.../name{2}という2番目の項目を参照することもできますname。データベーステーブルを各レコードのファイルとともにディレクトリにマウントするFUSEモジュールがない場合、誰もこれを実装しないと予想されます。ファイル名を主キーとして使用しますか? IDK、SQLデータベースはそのフィールドで照会できるため、これは実際には意味がありません。

おすすめ記事