拡張ファイル属性の表示と編集

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 コマンドの使い方について説明しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Swift による iOS 開発入門