bash
help cd
(および)のマニュアルページには、「拡張属性を持つファイルをファイル属性を含むディレクトリにレンダリングする」ためのcd
サポート-@
引数(「サポート対象システム」)が含まれています。
これを使用する例はありますか? (理想的には共通ファイルを使用するか、例を作成した設定を使用します。(私はcurrneltに慣れていません。xattr
)
サポートはどこにありますか? sはどこでもサポートされていますかxattr
、それともより多くのカーネルサポートが必要ですか? (つまり、xattr
サポートされているOS X、Solaris、FreeBSD、Linuxなどのバージョンで使用できますか?)
私の考えでは、ファイル/path/f
にxattr
私ができることがcd -@ /path/f
ある場合、ls
xattrsはシミュレートされた「ディレクトリ」に(シミュレートされた)「ファイル」として表示されます/path/f
。 (この目的のために、私はカーネルがこのエミュレーションの一種のサポートを必要とすると仮定します。なぜなら、ls
live Outsideのようなものなのでエミュレーションを実行できないことをbash
意味します)bash
答え1
私の考え-@
では、Solaris(およびIllumosなどのSolarisベースのシステム)でのみサポートされているようです。 Solaris で拡張された属性は、直交ネームスペースのファイルとして表示できます。理論的には、すべてのファイル(通常の意味ではディレクトリなどを含む)は拡張属性などを持つことができます。このプロパティフォレストを参照するために他のコマンドcd -@
の中で使用されるファイルツリーとして扱うことができるAPIがあります。-@
バラよりfsattr(5)
もっと学ぶ。これはサポートされているファイルシステムによって制限される可能性があります。たとえば、UFS では、ディレクトリが属性として使用されることは許可されず、属性自体が属性を持つことは許可されません。
Solaris でユーザーに表示される内容は、提案したとおりです。
~$ touch test
~$ cd -@ test
/proc/1604/fd/6$ ls
SUNWattr_ro SUNWattr_rw
/proc/1604/fd/6$ touch attribute
これにより、「テスト」ファイルに追加された「プロパティ」拡張属性ファイルが生成されます。cd -@ attribute
プロパティツリーの内部で作業し、ウサギの洞窟の下に降り続けることも可能です。
同様の拡張属性APIが最近(2019年1月)、Linux用に導入されました。議論するfs-verity
。