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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(英語版から)
タグ: リダイレクト解消
(翻訳)
1行目: 1行目:
 
[[en:Extended attributes]]
 
[[en:Extended attributes]]
  +
{{man|7|xattr}} から: "拡張属性は、ファイルやディレクトリと永続的に関連付けられた名前:値のペアです。" 拡張属性には4つのクラスがあります: security、system、trusted、そして user です。
   
  +
{{Warning|デフォルトでは、拡張属性は [[cp]]、[[rsync]]、そして他の似たようなプログラムによって保持されません。[[#拡張属性を保持する]] を見てください。}}
From {{man|7|xattr}}: "Extended attributes are name:value pairs associated
 
permanently with files and directories". There are four extended attribute
 
classes: security, system, trusted and user.
 
   
  +
拡張属性は、[[ケイパビリティ]]を設定する際にも用いられます。
{{Warning|By default, extended attributes are not preserved by [[cp]], [[rsync]], and other similar programs, see [[#Preserving extended attributes]].}}
 
 
Extended attributes are also used to set [[Capabilities]].
 
   
 
=== ユーザ拡張属性 ===
 
=== ユーザ拡張属性 ===
   
  +
ユーザ拡張属性は、ファイルに関する任意の情報を保存するために使用できます。属性を作成するには:
User extended attributes can be used to store arbitrary information about a
 
file. To create one:
 
   
 
$ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt
 
$ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt
   
  +
拡張属性を表示するには getfattr を使用してください:
Use getfattr to display extended attributes:
 
   
 
{{hc|$ getfattr -d foo.txt|2=
 
{{hc|$ getfattr -d foo.txt|2=
23行目: 19行目:
 
}}
 
}}
   
  +
拡張属性を削除するには:
Finally, to remove an extended attribute:
 
  +
 
$ setfattr -x user.checksum foo.txt
 
$ setfattr -x user.checksum foo.txt
   
  +
一部のユーザ拡張属性には以下が含まれています:
some other user xattrs include:
 
  +
* {{ic|user.mime_type}}: helps programs know mimetype and set it with less guesswork.
 
  +
* {{ic|user.mime_type}}: プログラムに mimetype を知らせ、推測しなくても良くします。
* {{ic|user.charset}}: used by the Apache httpd module [http://0pointer.de/lennart/projects/mod_mime_xattr mod_mime_xattr].
 
  +
* {{ic|user.charset}}: Apache httpd モジュール [http://0pointer.de/lennart/projects/mod_mime_xattr mod_mime_xattr] によって使用されます。
* {{ic|user.creator}}: The name of the application that created the file.
 
  +
* {{ic|user.creator}}: そのファイルを作成したアプリケーションの名前。
  +
  +
XDG は、プログラムによって使用される標準化された拡張属性のセットも提案しています:
   
  +
* {{ic|user.xdg.comment}}: Dolphin などのファイルマネージャによってサポートされます。
XDG also proposes a set of standardized xattrs to be used by programs:
 
* {{ic|user.xdg.comment}}: supported by Dolphin and other file managers.
+
* {{ic|user.xdg.origin.url}}: URL からダウンロードしたファイル用。
  +
* {{ic|user.xdg.robots.index}}: ファイルがインデックスに含まれるならば "true"。さもなくば "false"。
* {{ic|user.xdg.origin.url}}: for files downloaded from a url.
 
* {{ic|user.xdg.robots.index}}: "true" if a file is included in indexing, "false" otherwise
+
* {{ic|user.xdg.robots.backup}}: ファイルがバックアップに含まれるならば "true"。さもなくば "false"
* {{ic|user.xdg.robots.backup}}: "true" if a file is included in backup, "false" otherwise
 
 
* {{ic|user.xdg.language}}
 
* {{ic|user.xdg.language}}
 
* {{ic|user.xdg.creator}}
 
* {{ic|user.xdg.creator}}
46行目: 45行目:
   
 
{| class="wikitable"
 
{| class="wikitable"
  +
! コマンド || 必要なフラグ
! Command || Required flag
 
 
|-
 
|-
 
| {{ic|cp}} || {{ic|1=--preserve=mode,ownership,timestamps,xattr}}
 
| {{ic|cp}} || {{ic|1=--preserve=mode,ownership,timestamps,xattr}}
 
|-
 
|-
| {{ic|mv}} || {{Y|preserves by default<sup>1}}
+
| {{ic|mv}} || {{Y|デフォルトで保持<sup>1}}
 
|-
 
|-
| {{ic|tar}} || {{ic|--xattrs}} for creation and {{ic|1=--xattrs-include='*'}} for extraction
+
| {{ic|tar}} || 作成時には {{ic|--xattrs}}、展開時には {{ic|1=--xattrs-include='*'}}
 
|-
 
|-
| {{ic|bsdtar}} || {{ic|-p}} for extraction
+
| {{ic|bsdtar}} || 展開時に {{ic|-p}}
 
|-
 
|-
 
| [[rsync]] || {{ic|-X, --xattrs}}
 
| [[rsync]] || {{ic|-X, --xattrs}}
65行目: 64行目:
 
|}
 
|}
   
  +
# mv は、対象のファイルシステムが拡張属性をサポートしていない場合、何も言わずに拡張属性を破棄します。
# mv silently discards extended attributes when the target file system does not support them.
 
   
  +
[[テキストエディタ]]で拡張属性を保持するには、保存時に {{man|2|rename}} を使わずファイルを切り詰める/拡張する (truncate) するように設定する必要があります。[https://unix.stackexchange.com/questions/45407]
To preserve extended attributes with [[text editor]]s you need to configure them
 
to truncate files on saving instead of using {{man|2|rename}}. [https://unix.stackexchange.com/questions/45407]
 
   
 
== サポート ==
 
== サポート ==
74行目: 72行目:
 
=== ファイルシステム ===
 
=== ファイルシステム ===
   
  +
Ext、Btrfs、ZFS などの主要な Linux ファイルシステムの全てで拡張属性がサポートされています。カーネルは、拡張属性の名前は 255 バイトまで、値は 64 KiB まで許可しています。しかし、ext と btrfs では、拡張属性を "ファイルシステムブロック" 内に収める必要があることから、より小さい制限が課されるかもしれません。
All major Linux file systems including ext, btrfs, zfs, xfs, and more support
 
xattrs. The kernel allows to have xattrs names of up to 255 bytes and values of
 
up to 64 KiB, but ext and btrfs might impose smaller limits, requiring xattrs to
 
be within a "filesystem block".
 
   
  +
[[NTFS]] は代替データストリーム (Alternative Data Streams) を使って user を保存します。マウントオプションの {{ic|user_xattr}} か {{ic|1=streams_interface=xattr}} がデフォルトで使用されるはずです。しかし、マウントオプション {{ic|1=streams_interface=windows}} が使用されている場合は、拡張属性はサポートされないかもしれません。{{pkg|ntfs-3g}} は、FUSE 内での代替データストリームの拡張属性へのマッピングをサポートしています。
[[NTFS]] uses Alternative Data Streams to store user. The mount option
 
{{ic|user_xattr}} or {{ic|1=streams_interface=xattr}} should be used by default. However it
 
might not be supported if mount option {{ic|1=streams_interface=windows}} is used.
 
{{pkg|ntfs-3g}} supports mapping ADS to extended attributes in FUSE.
 
   
  +
NFS は現在、拡張属性をサポートしていません。
NFS does not currently support xattrs.
 
   
 
=== ファイルマネージャ ===
 
=== ファイルマネージャ ===
   
  +
説明:
Legend:
 
  +
# Preserved: whether xattrs are preserved when copied or moved.
 
  +
# 保持: コピーや移動をした時に拡張属性が保持されるか。
# Tags: whether tags xattrs are supported.
 
  +
# Tags: Tags 拡張属性がサポートされているか。
   
 
{| class="wikitable"
 
{| class="wikitable"
  +
! ファイルマネージャ
! File manager
 
  +
! 保持
! Preserved
 
 
! Tags
 
! Tags
 
|-
 
|-
114行目: 107行目:
 
|}
 
|}
   
# caja: supported by caja-xattr-tags and caja.eiciel extensions.
+
# caja: 拡張機能の caja-xattr-tags caja.eiciel によってサポートされています。
   
 
=== プログラム ===
 
=== プログラム ===
   
 
{| class="wikitable"
 
{| class="wikitable"
  +
! アプリケーション
! Application
 
  +
! サポートされている拡張属性
! Supported xattrs
 
  +
! いつから
! Supported since
 
! Notes
+
! 備考
 
|-
 
|-
 
| {{pkg|baloo}}
 
| {{pkg|baloo}}
147行目: 140行目:
 
| {{No}}
 
| {{No}}
 
|
 
|
  +
| mbox 拡張属性をリセットします。
| Resets mbox xattrs.
 
 
|-
 
|-
 
| [[Gwenview]]
 
| [[Gwenview]]
180行目: 173行目:
 
* [[wikipedia:Extended file attributes#Linux]]
 
* [[wikipedia:Extended file attributes#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.]
  +
  +
{{TranslationStatus|Extended attributes|2023-08-12|784937}}

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

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 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。