Ainda não usei o Mavericks.
O localizador armazena tags no próprio arquivo (ex: xmp) ou é alimentado por algum tipo de banco de dados? ou o que?
Ainda não usei o Mavericks.
O localizador armazena tags no próprio arquivo (ex: xmp) ou é alimentado por algum tipo de banco de dados? ou o que?
Respostas:
Agora que o NDA foi levantado: o Mavericks salva tags como um atributo estendido , em com.apple.metadata:_kMDItemUserTags
. Você pode verificá-los usando o comando mdls desta maneira:
mdls -name kMDItemUserTags Hello
A revisão épica de John Siracusa do OS X 10.9 descreve a arquitetura de tags em alguns detalhes.
As tags são armazenadas em um atributo estendido chamado com.apple.metadata: _kMDItemUserTags. Seu valor é uma lista de propriedades binárias que contém uma única matriz de seqüências de caracteres:
$ 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>
As tags para cores têm valores como Red\n6
(onde \n
é um avanço de linha).
Você pode usar o xattr para copiar as tags de um arquivo para outro:
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
Se o sinalizador kColor em com.apple.FinderInfo estiver desativado, o Finder não mostrará os círculos para cores ao lado dos arquivos. Se o sinalizador kColor estiver definido como laranja e o arquivo tiver a etiqueta vermelha, o Finder exibirá círculos vermelho e laranja. Você pode definir o sinalizador kColor com AppleScript:
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")'
é uma sintaxe plist antiga para isso:
<?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-29
imprime o valor dos bits usados para o sinalizador kColor. Vermelho é C, laranja é E, amarelo é A, verde é 4, azul é 8, magenta é 6 e cinza é 2. O sinalizador que adicionaria 1 aos valores não é usado no OS X.
Tanto quanto pude ler na internet, de várias fontes, é muito provável que o Mavericks armazene informações de tags como algo realmente próximo à estratégia do OpenMeta no próprio arquivo. Até agora, já tínhamos tags e vários aplicativos ajudando assim, como o Leap / Yep, por exemplo. Mas foi apenas uma prática recomendada consolidada acima de uma camada inferior padrão - OpenMeta. Agora, o Mavericks quer dar um passo adiante, oficializando as tags (e como elas devem ser codificadas no sistema de arquivos). As tags Plus terão um conjunto fixo de cores (7?) E isso pode ajudar a dividir as tags em conjuntos para transportar semântica extra. Muitos de nós pensam que esse pode ser um grande avanço na visão de um grande líder do setor de sistemas de arquivos para, eventualmente, conduzir escolhas futuras (os aplicativos dependerão mais disso e talvez o próprio Mac espere algumas anotações especiais em todo o sistema). Por uma questão de detalhes, o OpenMeta deseja que os metadados sejam descritos como xattr (atributos estendidos) de arquivos, para que seja algo que o próprio sistema de arquivos não se preocupe por estar fora de seu escopo.
A questão era bastante antiga e o Mavericks virará GM em breve. Portanto, apesar do fato de haver apenas informações relacionadas ao domínio Beta, é razoavelmente verdade tudo o que disse acima. Existem várias discussões na internet sobre esse tópico e uma em particular está aqui:
https://groups.google.com/d/msg/openmeta/DK4Of2QGkpM/KIK9VKaCQdkJ
A parte mais interessante é:
As tags Apple são implementadas da mesma maneira que as tags OpenMeta - como atributos estendidos anexados aos arquivos no sistema de arquivos. A única diferença é que o nome do atributo é _kMDItemUserTags em vez de kMDItemOMUserTags (o "OM" na última tag é para "OpenMeta"). Os dados das tags Mavericks e OpenMeta são listas de propriedades, mas eu não olhei o formato interno das listas, então não sei se são exatamente iguais ou não. Também não sei o que, se houver, armazenamento auxiliar ou métodos alternativos são usados para formatos de disco que não sejam HFS + - sei que o hype da Apple disse que você também pode marcar arquivos no iCloud, para que haja algum problema.
O longo e o curto, no entanto, é que, pelo menos nos discos locais do Mac, os dados da tag OpenMeta precisarão ser migrados para o novo atributo _kMDItemUserTags para serem vistos de forma nativa pelo Maverick. Não é grande coisa, mas alguém precisa escrever um utilitário para fazer isso.