cdの「-@」引数はどのように機能しますか?

cdの「-@」引数はどのように機能しますか?

bashhelp cd(および)のマニュアルページには、「拡張属性を持つファイルをファイル属性を含むディレクトリにレンダリングする」ためのcdサポート-@引数(「サポート対象システム」)が含まれています。

これを使用する例はありますか? (理想的には共通ファイルを使用するか、例を作成した設定を使用します。(私はcurrneltに慣れていません。xattr

サポートはどこにありますか? sはどこでもサポートされていますかxattr、それともより多くのカーネルサポートが必要ですか? (つまり、xattrサポートされているOS X、Solaris、FreeBSD、Linuxなどのバージョンで使用できますか?)

私の考えでは、ファイル/path/fxattr私ができることがcd -@ /path/fある場合、lsxattrsはシミュレートされた「ディレクトリ」に(シミュレートされた)「ファイル」として表示されます/path/f。 (この目的のために、私はカーネルがこのエミュレーションの一種のサポートを必要とすると仮定します。なぜなら、lslive 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

おすすめ記事