「拡張属性」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(TranslationStatus を更新)
(→‎参照: 日本語版 Wikipedia ページ)
172行目: 172行目:
   
 
* [https://www.freedesktop.org/wiki/CommonExtendedAttributes XDG guidelines for extended attributes]
 
* [https://www.freedesktop.org/wiki/CommonExtendedAttributes XDG guidelines for extended attributes]
* [[wikipedia:Extended file attributes#Linux]]
+
* [[Wikipedia:ja:拡張ファイル属性#Linux]]
 
* [https://www.lesbonscomptes.com/pages/extattrs.html Extended attributes: the good, the not so good, the bad.]
 
* [https://www.lesbonscomptes.com/pages/extattrs.html Extended attributes: the good, the not so good, the bad.]
   

2023年8月12日 (土) 11:01時点における版

xattr(7) から: "拡張属性は、ファイルやディレクトリと永続的に関連付けられた名前:値のペアです。" 拡張属性には4つのクラスがあります: security、system、trusted、そして user です。

警告: デフォルトでは、拡張属性は cprsync、そして他の似たようなプログラムによって保持されません。#拡張属性を保持する を見てください。

拡張属性は、ケイパビリティを設定する際にも用いられます。

ユーザ拡張属性

ユーザ拡張属性は、ファイルに関する任意の情報を保存するために使用できます。属性を作成するには:

$ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt

拡張属性を表示するには getfattr を使用してください:

$ getfattr -d foo.txt
# file: foo.txt
user.checksum="3baf9ebce4c664ca8d9e5f6314fb47fb"

拡張属性を削除するには:

$ setfattr -x user.checksum foo.txt

一部のユーザ拡張属性には以下が含まれています:

  • user.mime_type: プログラムに mimetype を知らせ、推測しなくても良くします。
  • user.charset: Apache httpd モジュール mod_mime_xattr によって使用されます。
  • user.creator: そのファイルを作成したアプリケーションの名前。

XDG は、プログラムによって使用される標準化された拡張属性のセットも提案しています:

  • user.xdg.comment: Dolphin などのファイルマネージャによってサポートされます。
  • user.xdg.origin.url: URL からダウンロードしたファイル用。
  • user.xdg.robots.index: ファイルがインデックスに含まれるならば "true"。さもなくば "false"。
  • user.xdg.robots.backup: ファイルがバックアップに含まれるならば "true"。さもなくば "false"。
  • user.xdg.language
  • user.xdg.creator
  • user.xdg.publisher
  • user.xdg.origin.email.subject
  • user.xdg.origin.email.from
  • user.xdg.origin.email.message-id

拡張属性を保持する

コマンド 必要なフラグ
cp --preserve=mode,ownership,timestamps,xattr
mv デフォルトで保持1
tar 作成時には --xattrs、展開時には --xattrs-include='*'
bsdtar 展開時に -p
rsync -X, --xattrs
cpio No
gzip No
pax No
  1. mv は、対象のファイルシステムが拡張属性をサポートしていない場合、何も言わずに拡張属性を破棄します。

テキストエディタで拡張属性を保持するには、保存時に rename(2) を使わずファイルを切り詰める/拡張する (truncate) するように設定する必要があります。[1]

サポート

ファイルシステム

Ext、Btrfs、ZFS などの主要な Linux ファイルシステムの全てで拡張属性がサポートされています。カーネルは、拡張属性の名前は 255 バイトまで、値は 64 KiB まで許可しています。しかし、ext と btrfs では、拡張属性を "ファイルシステムブロック" 内に収める必要があることから、より小さい制限が課されるかもしれません。

NTFS は代替データストリーム (Alternative Data Streams) を使って user を保存します。マウントオプションの user_xattrstreams_interface=xattr がデフォルトで使用されるはずです。しかし、マウントオプション streams_interface=windows が使用されている場合は、拡張属性はサポートされないかもしれません。ntfs-3g は、FUSE 内での代替データストリームの拡張属性へのマッピングをサポートしています。

NFS は現在、拡張属性をサポートしていません。

ファイルマネージャ

説明:

  1. 保持: コピーや移動をした時に拡張属性が保持されるか。
  2. Tags: Tags 拡張属性がサポートされているか。
ファイルマネージャ 保持 Tags
dolphin No
thunar Yes
caja Yes1
nautilus
  1. caja: 拡張機能の caja-xattr-tags と caja.eiciel によってサポートされています。

プログラム

アプリケーション サポートされている拡張属性 いつから 備考
baloo user.xdg.tags
Chromium user.xdg.origin,user.xdg.referrer
CURL
Dropbox user.com.dropbox.attributes
emacs-vm No mbox 拡張属性をリセットします。
Gwenview user.xdg.tags
recoll user.xdg.tags
tmsuAUR No
tagspacesAUR No
Wget

参照

翻訳ステータス: このページは en:Extended attributes の翻訳バージョンです。最後の翻訳日は 2023-08-12 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。