MavericksのFinderはどのようにタグを保存しますか?


13

マーベリックはまだ使用していません。
ファインダーはタグをファイル自体に保存しますか(例:xmp)、または何らかの種類のデータベースを使用していますか?または何?


OS X Maverickについて質問する前に試してみてください。
ラムハウンド

ファイルシステム内のタグ付けに対するMavericksのアプローチは、Finderに限定されないことに注意してください。
グラハムペリン

回答:


12

Mavericksはタグを拡張属性として保存します

今NDAが解除されていること:マーベリックスとしてタグを保存し、拡張属性には、com.apple.metadata:_kMDItemUserTags。次のようにmdlsコマンドを使用して、自分で確認できます。

mdls -name kMDItemUserTags Hello

John SiracusaによるOS X 10.9の壮大なレビューでは、タグアーキテクチャについてある程度詳しく説明しています。


3
そして、拡張属性はどのように保存されますか?
オクルス

1

タグは、com.apple.metadata:_kMDItemUserTagsという名前の拡張属性に保存されます。その値は、文字列の単一の配列を含むバイナリプロパティリストです。

$ xattr -p com.apple.metadata:_kMDItemUserTags file3|xxd -r -p|plutil -convert xml1 - -o -
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>Red
6</string>
    <string>aa</string>
    <string>Orange
7</string>
    <string>Yellow
5</string>
    <string>Green
2</string>
    <string>Blue
4</string>
    <string>Purple
3</string>
    <string>Gray
1</string>
</array>
</plist>

色のタグには次のような値がありますRed\n6(ここ\nで改行です)。

xattrを使用して、あるファイルから別のファイルにタグをコピーできます。

xattr -wx com.apple.metadata:_kMDItemUserTags "$(xattr -px com.apple.metadata:_kMDItemUserTags file1)" file2
xattr -wx com.apple.FinderInfo "$(xattr -px com.apple.FinderInfo file1)" file2

com.apple.FinderInfoのkColorフラグが設定されていない場合、Finderはファイルの横にある色の円を表示しません。kColorフラグがオレンジに設定されていて、ファイルに赤いタグがある場合、Finderは赤とオレンジの両方の円を表示します。AppleScriptでkColorフラグを設定できます。

xattr -w com.apple.metadata:_kMDItemUserTags '("Red\n6","new tag")' ~/desktop/file4"
osascript -e 'tell application "Finder" to set label index of file "file4" of desktop to item 1 of {2, 1, 3, 6, 4, 5, 7}'

'("Red\n6","new tag")' これは古いスタイルのplist構文です:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>Red
6</string>
    <string>new tag</string>
</array>
</plist>

xattr -p com.apple.FinderInfo file|head -n1|cut -c28-29kColorフラグに使用されるビットの値を出力します。赤はC、オレンジはE、黄色はA、緑は4、青は8、マゼンタは6、グレーは2です。値に1を追加するフラグはOS Xでは使用されません。


1
たとえば、赤色の「Financial」という名前のタグを作成した場合、拡張属性plistは「Financial」または「Red」を格納しますか?また、名前と色の間のマッピングはどのように行われますか?
バダディカルティック

「値に1を追加するフラグは、OS Xでは使用されません。」これは何を意味するのでしょうか?
ニコラスバルブレスコ

この答えは詳細です。しかし、色とタグの違いは明確ではありません。
ニコラスバルブレスコ

そして、この拡張属性はどこに保存されますか?
ニコラスバルブレスコ

1

インターネットで読むことができる限り、いくつかのソースから、Mavericksはファイル自体にOpenMeta戦略に本当に近いものとしてタグ情報を保存する可能性が非常に高いです。これまでにすでにタグがあり、これを支援するアプリケーションがいくつかありました。たとえば、Leap / Yepのようなものです。ただし、これは標準の下位層であるOpenMetaの上に統合されたベストプラクティスにすぎません。現在、Mavericksは、タグ(およびファイルシステムでのエンコード方法)を公式にするためのステップをさらに進めたいと考えています。Plusタグには固定された色のセット(7?)があり、これは追加のセマンティックを運ぶためにセットでタグを分割するのにさらに役立ちます。私たちの多くは、これが最終的に将来の選択肢を推進するための大きな業界リーダーのファイルシステムビジョンの大きな前進であると考えています(アプリケーションはこれに大きく依存し、mac os自体はいくつかの特別なシステム全体の注釈を期待するでしょう)。詳細のために、OpenMetaはメタデータがファイルのxattr(拡張属性)として記述されることを望んでいます。そのため、ファイルシステム自体はスコープ外なので気にしないものです。

質問は実際にはかなり古く、MavericksはすぐにGMを変更する予定です。したがって、ベータドメインに関連する情報しか存在しないにもかかわらず、上記のすべてのことは合理的です。このトピックについてはインターネット上でいくつかの議論が行われていますが、特に1つはここにあります。

https://groups.google.com/d/msg/openmeta/DK4Of2QGkpM/KIK9VKaCQdkJ

最も興味深い部分は次のとおりです。

Appleタグは、OpenMetaタグと同じ方法で実装されます-ファイルシステム内のファイルに付加された拡張属性として。唯一の違いは、属性名がkMDItemOMUserTagsではなく_kMDItemUserTagsであることです(後者のタグの「OM」は「OpenMeta」用です)。MavericksタグとOpenMetaタグの両方のタグデータはプロパティリストですが、プリストの内部形式は確認しなかったため、まったく同じかどうかはわかりません。また、非HFS +ディスク形式に補助記憶装置または代替方法が使用されている場合、どのような方法が使用されているかもわかりません。

ただし、長短は、少なくともローカルMacディスクでは、Maverickがネイティブで表示するためにOpenMetaタグデータを新しい_kMDItemUserTags属性に移行する必要があるということです。大したことではありませんが、誰かがそれを行うにはユーティリティを書く必要があります。


1
Weird、groups.google.com / d / msg / openmeta / DK4Of2QGkpM / KIK9VKaCQdkJは、投稿用にGoogleから提供されたリンクですが、そのリンクをたどると、必要な投稿を公開できない場合があります。
グラハムペリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.