回答:
Linuxのlsattr
/ chattr
で処理される属性で、その一部はかなりの数のファイルシステム(ext2 / 3/4、reiserfs、JFS、OCFS2、btrfs、XFS、nilfs2、hfsplus ...)で保存でき、CIFSでクエリすることもできます。 / SMB(POSIX拡張機能がある場合)はフラグです。属性を無効または有効にするためにオンまたはオフにできるビット(単なる不変またはアーカイブなど)。それらがどのように格納されるかはファイルシステム固有ですが、一般的にはiノード内の16/32/64ビットレコードとしてです。
フラグの完全なリストはLinuxネイティブファイルシステム(ext2 / 3/4、btrfs ...)にありますが、すべてのフラグがすべてのFSに適用されるわけではなく、他の非ネイティブFSの場合、Linuxはそれらを同等のものにマップしようとします対応するファイルシステムの機能。たとえば、OSXによってHFS +ファイルシステムに保存されているsimmutableフラグは、Linuxの対応する不変フラグにマップされますchattr
。どのファイルシステムがどのフラグをサポートしているかは、ほとんど文書化されていません。多くの場合、カーネルソースコードを読み取ることが唯一のオプションです。
一方、Linuxで、setfattr
またはattr
Linuxで設定された拡張属性は、フラグ以上のものを格納します。それらはファイルにも添付され、(キーと値の両方で)バイトの任意の配列にできるキー/値のペアです(ただし、一部のファイルシステムではサイズに制限があります)。
キーは、たとえば:system.posix_acl_access
またはにすることができますuser.rsync.%stat
。system
名前空間は(あなたとPOSIX ACLを変更しませんシステム用に予約されていsetfattr
ますが、より多く持つsetfacl
一方で、POSIX ACLはちょうど、少なくともいくつかのファイル・システム上の拡張属性として保存することが起こる)user
名前空間がアプリケーションで使用することができ、ここで(スーパーユーザーではない場合に、所有権や権限に関する情報を格納rsync
するために、その--fake-super
オプションに使用します)。
繰り返しになりますが、それらがどのように格納されるかはファイルシステム固有です。詳細については、WikiPediaを参照してください。
lsattr
/ chattr
非ための作業ext
ファイルシステム?そうでない場合ext
、Linux 以外のシステムでフラグをどのように変更しますか?また、attr
manページには、XFS用に書かれていると記載されています(私にとっては動作しますがext4
)。昨日実際に調べてみたのですが、良い情報が手に入りません。見てください- unix.stackexchange.com/questions/118840/...
lsattr/chattr
ファイルフラグ用です。すべてのフラグがすべてのファイルシステムでサポートされているわけではありません。たとえば、圧縮などの一部のフラグはext4では機能しませんが、btrfsでは機能します。
reiserfs
。
attr
コマンドはXFSファイルシステム向けであり、同等のファイルシステム独立コマンドはsetfattr