最終更新日:2012/10/17

xattrのメモ

xattrの設定方法

昔xattrで属性を設定しようと思ったけどうまく設定できなくて、諦めたことがあったのですが、Manually set extended attributes on arbitrary files - Mac OS X Hintsに設定方法が書いてあり、試してみるとうまくいきましたのでそのメモです。

xattr -w 'com.apple.metadata:kMDItemWhereFroms' '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><array><string>http://www.from.where.do.I.com</string></array></plist>' path_to_file

設定できるデータの種類(他にもあるかもしれません)

文字
<string>hoge</string>
数値
<integer>123</integer>
日時
<date>2011-02-23T12:39:08Z</date>
ISO 8601という形式。
現在時刻をターミナルで作成する場合はdate -u '+%Y-%m-%dT%H:%M:%SZ'
この文字列をUnix Timeに直すにはphpでstrtotimeを使うとできる
on strtotime(theText)
	return do shell script "php -r 'date_default_timezone_set(\"Asia/Tokyo\");print strtotime($argv[2]);' '' " & quoted form of theText
end strtotime
現在のUnix Timeはdo shell script "date +%s"で取得できるので、双方の数値を比較すると、現在時間との比較が可能。
配列
<array>数値、文字列、日時</array>

com.apple.metadata:hoge形式のhoge部分は任意に設定できる。ただし、勝手にどんどん追加していっていいものかどうかはわかりません。

属性testStringにhikaruを設定する

xattr -w 'com.apple.metadata:testString' '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><string>hikaru</string></plist>' path_to_file

上記コマンドでtestStringをhikaruに設定するとhikaruで検索できるようなる。 Finderのスポットライトの「生のクエリー」で"testString = hikaru"にすると属性を指定して検索できる。

integerも同様に設定、検索できるようにできる。