拡張ファイル属性の表示と編集
1. 拡張ファイル属性とは?
macOS では拡張ファイル属性 (extended attributes) が使えます。
ファイルシステムには、ファイル名やファイルの更新日時といった、基本情報を保持する機能が備わっています。 拡張ファイル属性というのは、そうした基本情報以外に、ユーザーが任意にファイルに関連付けするメタデータのことです。
拡張ファイル属性は、単に拡張属性ともいいます。
2. 拡張ファイル属性の表示と編集
拡張ファイル属性は xattr コマンドを使うと、表示や編集などができます。 また、ls コマンドの -l@ オプションでもある程度表示できます。
例えば、ls -l@ コマンドを実行すると、次のようになります。
% ls -l@ total 329160 -rw-r--r--+ 1 user1 staff 26 Dec 1 00:51 file1.txt -rw-r--r--@ 1 user1 staff 167978550 Nov 22 15:07 gimp-2.10.14-x86_64.dmg com.apple.diskimages.fsck 20 com.apple.diskimages.recentcksum 80 com.apple.macl 72 com.apple.metadata:kMDItemWhereFroms 151 com.apple.quarantine 57
パーミッションの横に表示されている @ 記号が、拡張ファイル属性が設定されていることを示しています。
ここで表示された com.apple.diskimages.fsck などのエントリーが拡張ファイル属性です。
拡張属性の値の表示には xattr コマンドの -p オプションを使います。
% xattr -p 属性名 ファイル名
拡張属性の値の設定には xattr コマンドの -w オプションを使います。
例えば file1.txt に my-project 属性として、test という値を設定するには、 次のようにします。
% xattr -w my-project test file1.txt
拡張属性の一覧を表示するには、xattr コマンドの -l オプションを使います。
% xattr -l file1.txt my-project: test url: swift-ios.keicode.com
拡張属性を削除するには、xattr コマンドの -d オプションを使い、 削除する属性名を渡します。
% xattr -d my-project file1.txt % xattr -l file1.txt url: swift-ios.keicode.com
ここでは、拡張属性と、拡張属性を表示するための ls コマンドや xattr コマンドの使い方について説明しました。