Windows NTFS には、趣味の開発プロジェクトで最近使用した "Alternate Data Streams" (ADS) と呼ばれる、優れているがほとんど使用されていない機能があります。
Mac HFS+ には、「名前付きフォーク」と呼ばれる、同様に優れているがほとんど使用されていない機能もあります。
このプロジェクトを Linux に移植することを考えていますが、Linux のファイルシステムにそのような機能があるかどうかわかりません。
Windows NTFS には、趣味の開発プロジェクトで最近使用した "Alternate Data Streams" (ADS) と呼ばれる、優れているがほとんど使用されていない機能があります。
Mac HFS+ には、「名前付きフォーク」と呼ばれる、同様に優れているがほとんど使用されていない機能もあります。
このプロジェクトを Linux に移植することを考えていますが、Linux のファイルシステムにそのような機能があるかどうかわかりません。
Windows と Linux (およびその他の OS) の両方に、拡張属性 (EA) をサポートするファイル システムがあります。Windows のサポートは OS/2 互換用に追加されたものであり、バックアップ API を介したハッキーな方法 (Cygwin が行うこと) を除いて、文書化されたインターフェイスはありません。EA は小さな値のみを格納するように設計されています。Windows では、各 EA は ASCII 名 (他のほとんどすべての名前は Unicode) を持ち、ファイル上のすべての EA の合計サイズは 64k を超えることはできません。EA はファイルではありません。EA へのファイル ハンドルを開いて、通常のファイルのように読み取ることはできません。
代替データ ストリームは、NTFS によって提供される別の機能であり、ファイル内に代替サブファイルを提供できます。すべてのファイルにはデフォルトの名前のないデータ ストリームがあり、別のデータ ストリームを指定しない限り、自動的に開かれます。ADS へのハンドルを開き、単一の (Unicode) ファイル名を使用して、通常のファイルのように読み取る (実行することもできる) ことができます。ADS は、任意のディスク ファイルと同じ大きさにすることができます。
私が知っている Linux の ADSes に正確に類似するものはありませんが、データ値が小さい場合は代わりに Linux ポートで EA を使用できる場合があります。
ADSの問題は、WindowsがNTFS以外のファイルシステムに移動した瞬間にそれらのADSストリームを「失う」ことです。それらのストリームは重要であるとは見なされないため、多くの場合、それらは維持されません。ネットワーク共有を介した場合、CDに書き込んだ場合、USBドライブに入れた場合など、アクセスできないか、消えることがあります。
それの長短は、アプリケーションに非常に狭い焦点がない限り(常にNTFSに)、ADSストリームを完全に回避することです。
拡張属性は、一部のファイルシステム、特に XFS と (私が思うに) JFS でサポートされています。ただし、サイズに制限があります (XFS では 64k)。Reiser4 は任意のサイズのフォークをサポートしています。しかし、私が知っているディストリビューションではサポートされていません。別のオプションは ZFS ですが、これもあまり使い物になりません。
最終的には、ディレクトリを使用する方がおそらく賢明です。
ほとんどの Linux ファイル システムには、extended attributes
. 私は NTFS ストリームに詳しくないので、この 2 つを比較することはできません。ほとんどのファイル システムは、拡張属性を有効にするフラグを付けてマウントする必要があるため、これは一般的にどのシステムでも機能しない可能性があります。通常、xattr
またはと省略されxattrs
ます。
私が知っている唯一のことは、その方向にいくぶん拡張属性ですが、ADSについて読んだことから、それはdefです。同じことではありません。一体何のために使っているのですか?
一般的に使用される Linux ファイルシステムはこれをサポートしていません。代わりに、複数のファイルと適切な命名スキーム (おそらく各ファイル名にストリーム インデックスを追加するだけ)、または複数のファイルを含むアーカイブを使用できます。とにかく、そのようなアプローチは他の方法でより優れていることがわかります-たとえば、Windowsファイルを非NTFSファイルシステムのメディアにバックアップしたい場合、Windowsではどうなりますか?