hibitekitou
Spotlightコメントはどこに保持されるのか
mac |2007-02-14
2chの某スレッドを読んでいて、あり?って思ったことがあったのね。
曰く、Spotlightコメントは.DS_Storeに保持される。
その後、そのコメントに対して誰も突っ込みをいれていないことから、正解なのかもしれないと思いつつ、やっぱり納得できないわけです。
ってことで、確認してみます。
JPEGファイルのSpotlightコメントを編集する前。
Spotlightコメントを編集後。
それじゃ、.DS_Storeには何が保持されるのか、ってぇと、そのフォルダのウィンドウ情報を保持するもの、ってことみたいですね。
少なくとも、.DS_Storeを消したからといってコメントが無くなることはないようなので安心しました。
ついでに、調べていたら、「Tiger:ネットワークボリュームで.DS_Storeを抑制」って記事を見つけました。なるほど、参考になります。
曰く、Spotlightコメントは.DS_Storeに保持される。
その後、そのコメントに対して誰も突っ込みをいれていないことから、正解なのかもしれないと思いつつ、やっぱり納得できないわけです。
ってことで、確認してみます。
JPEGファイルのSpotlightコメントを編集する前。
$ ls -a
. .. 1162458623321.jpg
Spotlightコメントを編集後。
$ ls -aなるほど。確かに。編集により、.DS_Storeが出来ています。この状態で、JPEGのメタデータを見てみます。
. .DS_Store
.. 1162458623321.jpg
$ mdls 1162458623321.jpgそれでは、.DS_Storeを削除してみます。
1162458623321.jpg -------------
(略)
kMDItemContentTypeTree = ("public.jpeg", "public.image", "public.data", "public.item", "public.content")
kMDItemDisplayName = "1162458623321.jpg"
kMDItemFinderComment = "蝶の写真"
kMDItemFSContentChangeDate = 2006-11-03 02:27:14 +0900
kMDItemFSCreationDate = 2006-11-03 02:27:14 +0900
(略)
$ rm .DS_Store再びメタデータを見てみます。
$ ls -a
. .. 1162458623321.jpg
$ mdls 1162458623321.jpg…、消えません。
1162458623321.jpg -------------
(略)
kMDItemDisplayName = "1162458623321.jpg"
kMDItemFinderComment = "蝶の写真"
kMDItemFSContentChangeDate = 2006-11-03 02:27:14 +0900
(略)
それじゃ、.DS_Storeには何が保持されるのか、ってぇと、そのフォルダのウィンドウ情報を保持するもの、ってことみたいですね。
少なくとも、.DS_Storeを消したからといってコメントが無くなることはないようなので安心しました。
ついでに、調べていたら、「Tiger:ネットワークボリュームで.DS_Storeを抑制」って記事を見つけました。なるほど、参考になります。
コメント ( 18 )|Trackback ( )
っていうディレクトリ(XXXは任意の文字列だと思う)があるので、その中に入っていると思います。rootしか読めないようになっているので、
sudo ls -la /.Spotlight-XXX/
で中身が見えると思います。
例えばデジカメで撮影された画像の情報をデータベースとして保持するために、各ボリュームのトップレベルにファイルを作成しているけど、ファイルその物も当然その情報は保持しています(ファイルそのものの情報を収集したデータベースなんだから当然といえば当然)。それと同様に、Spotlightコメントもファイルに直接関連付けられた形でそれぞれのファイルが(ファイルの作成日とか更新日と化とおんなじレベルで)情報を保持していて、それをデータベース化したものが各ボリュームのトップレベルに保持されている、って思っていたのですけど、そうじゃなかったんですね。
参考になりました。ありがとうございます(^^)
Mac OS X 10.4 Tiger : Metadata revisited
http://arstechnica.com/reviews/os/macosx-10.4.ars/6
Mac OS X 10.4 Tiger : Extended attributes
http://arstechnica.com/reviews/os/macosx-10.4.ars/7
でも、おっしゃる内容は個人的にはすっきりしますです。
そうすると、例えば、FATなんかにファイルを書き込むと、作成される ._ が頭につくファイルもでき上がりますが、こいつにSpotlightコメントは書き込まれるってことになるんでしょうかね?
ってことは、FAT上のファイルにSpotlightコメントを入力したときのこいつの容量の増減をみてやれば、本当にSpotlightコメントがHFSの保持する複数フォークのどっかに保持されることが間接的に見て取れるってことになるかな?
うん、明日、USBメモリにて確認してみましょう(^^)
でも、USBメモリの抜き差しをしても、その情報は失われていなかったことから、どこかに保持されているのでしょう。
lsとかFinderからはみることが出来ない領域にFATででも書き込まれているのでしょうかね?
ちょっと仕事がテンパリ気味で…
ファイルサイズが変わらないのは、メタデータに割り当てられている領域のサイズが決まっているからかも?
紹介した資料、目を通したのはだいぶ前で、読み返す気力はないのですが、7 のほうにこんな記述がありますね。
”As in earlier versions of Mac OS X, files prefixed with "._" contain all of the metadata for their un-prefixed partner that the native volume format cannot contain in a single file: resource forks, flags, dates, and now in Tiger, extended attributes.”
USBメモリをWindows XPでFAT32で初期化。
USBメモリをMacにマウントし、flvファイルとjpgファイルをコピー。jpgファイルにはSpotlightコメントがついている。
ls -alvとしてみた結果は以下の通り。
-rwxrwxrwx 1 usrorgrp usrorgrp 1000544 10 8 20:54 鬼無双.flv
drwxrwxrwx 1 usrorgrp usrorgrp 4096 2 24 22:56 .
drwxrwxrwt 4 root admin 136 2 24 22:55 ..
drwxrwxrwx 1 usrorgrp usrorgrp 4096 2 24 22:56 .Trashes
-rwxrwxrwx 1 usrorgrp usrorgrp 4096 2 24 22:52 ._.Trashes
-rwxrwxrwx 1 usrorgrp usrorgrp 145248 2 24 22:20 Italian_Girl_with_Fan2.jpg
ご覧の通り、._ファイルが作成されていないのですよ。しかし、確かにコメントは保持されています。flvに追加したコメントも保持されています。
試しにカスタムアイコンを貼付けられたファイル(Jeditで作成したテキストファイル)をコピーすると、こちらの._ファイルは作成されます。
ファイルシステムってものをちゃんと勉強しないと分からないのかもしれないですね(^^;
おいおい調べてこうと思いますですよ。
Undocumented Mac OS X:第11回 HFS Plus独自の機能【後編】http://www.itmedia.co.jp/enterprise/articles/0710/16/news006_2.html
拡張属性として保存されているようですね。少なくとも、/.Spotlight-XXX/ ではなさそうです(検索のために情報のキャッシュは入っていそうですが)。
コメントがその領域に保持されているのかまではよく分かりませんけれど、とはいえ、有益な情報感謝です。
Leopardでは、はっきりしているようですね。
【コラム】OS X ハッキング! (250) Leopard解体新書(1) ~Terminalから豹を眺める~ | パソコン | マイコミジャーナル
http://journal.mycom.co.jp/column/osx/250/index.html
「Windowsの共有領域などHFS+以外のボリュームへ「@」付きのファイルをコピーすると、Apple Doubleのメカニズムが動作する。すなわち、同じディレクトリに「._」で始まるファイルが作成され、そこへ拡張属性が保存される」
たぶん、Tigerにおいても同様でしょう。
それにしても、ターミナルが使い勝手という意味でとてもよくなりました。@もその存在を知った上で見ると、微妙にうれしい情報ですね。
Leopard ではファイル単位で拡張属性として保存されるようになってますが、結局のところ、Tiger はどうなってたんでしょうねー。
あり?、コメントが保持されないよーな…
1.USBメモリ上のファイルにFinderの情報を見るからコメントを書き込む。
2.情報を見るウィンドウを閉じてまた開いて、コメントが書き込まれていることを確認する。
3.USBメモリをアンマウント
4.USBメモリを再マウント
5.情報を見るでファイルのコメントを確認→あり?コメント欄が空だ
って感じです。
とか書いている現在、USBメモリがマウントされない状況になっているので、このUSBメモリがちょっと変なのが原因かもしれず、首を傾げております…。
Leopard解体新書(4) ~拡張された拡張属性~
http://journal.mycom.co.jp/column/osx/253/index.html
> EAへの完全移行は当分先のこと。LeopardでもTigerのときと同様、
> Finderコメント(Spotlightコメント)が.DS_Storeに記録されることから
> 伺えるように、以前のシステムとの互換性を保つ仕組みはしばらく残りそうだ。
この記事によると Leopard では Extended Attributes と .DS_Store の両方に保存されるというですよね…?
TigerでEAが導入されエチルことから、.DS_Storeを消したぐらいじゃコメントが消えない(はず)なことから推測できるように、EA部分にも記録されているんじゃないかと思います。
EAに記録されているとしたら、._ファイルにコメントが保持されるのも納得ですし、そうであって欲しいと思いますが、今度、ちゃんとしたドライブで検証してみようと思います(僕が検証に使っていたUSBメモリの挙動がどうにも怪しいので…)