Nie korzystałem jeszcze z Mavericks.
Czy wyszukiwarka przechowuje tagi w samym pliku (np. Xmp), czy jest zasilany przez jakąś bazę danych? albo co?
Nie korzystałem jeszcze z Mavericks.
Czy wyszukiwarka przechowuje tagi w samym pliku (np. Xmp), czy jest zasilany przez jakąś bazę danych? albo co?
Odpowiedzi:
Po zniesieniu NDA: Mavericks zapisuje tagi jako atrybut rozszerzony w com.apple.metadata:_kMDItemUserTags
. Możesz je sprawdzić samodzielnie za pomocą polecenia mdls w następujący sposób:
mdls -name kMDItemUserTags Witaj
Epicka recenzja OS X 10.9 autorstwa Johna Siracusa opisuje szczegółowo architekturę znaczników .
Tagi są przechowywane w rozszerzonym atrybucie o nazwie com.apple.metadata: _kMDItemUserTags. Jego wartością jest binarna lista właściwości, która zawiera pojedynczą tablicę ciągów:
$ 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>
Tagi dla kolorów mają wartości takie jak Red\n6
(gdzie \n
jest wysuw linii).
Możesz użyć xattr, aby skopiować tagi z jednego pliku do drugiego:
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
Jeśli flaga kColor w com.apple.FinderInfo jest wyłączona, Finder nie pokazuje okręgów dla kolorów obok plików. Jeśli flaga kColor jest ustawiona na pomarańczowy, a plik ma czerwony znacznik, Finder pokazuje zarówno czerwone, jak i pomarańczowe kółka. Możesz ustawić flagę kColor za pomocą 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")'
to stara składnia plist do tego:
<?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
wypisuje wartość bitów użytych dla flagi kColor. Czerwony to C, pomarańczowy to E, żółty to A, zielony to 4, niebieski to 8, magenta to 6, a szary to 2. Flaga, która dodaje 1 do wartości, nie jest używana w OS X.
O ile mogłem przeczytać w Internecie, z kilku źródeł, bardzo prawdopodobne jest, że Mavericks będzie przechowywać informacje o znacznikach jako coś naprawdę zbliżonego do strategii OpenMeta w samym pliku. Do tej pory mieliśmy już tagi i kilka aplikacji pomagających w tym, na przykład Leap / Yep. Ale była to tylko najlepsza praktyka skonsolidowana powyżej standardowej dolnej warstwy - OpenMeta. Teraz Mavericks chce zrobić krok dalej, czyniąc tagi (i sposób ich zakodowania w systemie plików) oficjalnym. Tagi plus będą miały ustalony zestaw kolorów (7?), A to może dodatkowo pomóc w podzieleniu znaczników na zestawy, aby uzyskać dodatkowy semantyczny. Wielu z nas uważa, że może to być ogromny krok naprzód w wizji systemu plików dużego lidera branży, aby ostatecznie podjąć przyszłe wybory (aplikacje będą w tym bardziej polegać i być może sam system operacyjny będzie oczekiwał specjalnych adnotacji w całym systemie). Ze względu na szczegóły OpenMeta chce, aby metadane były opisywane jako xattr (atrybuty rozszerzone) plików, tak aby sam system plików nie dbał o to, ponieważ nie jest objęty zakresem.
Pytanie było w gruncie rzeczy dość stare i Mavericks wkrótce stanie się GMem. Więc pomimo tego, że są tylko informacje związane z domeną Beta, jest to całkiem słuszne, wszystko, co powiedziałem powyżej. W Internecie toczy się kilka dyskusji na ten temat, a jedna z nich jest tutaj:
https://groups.google.com/d/msg/openmeta/DK4Of2QGkpM/KIK9VKaCQdkJ
Najciekawsza część to:
Znaczniki Apple są implementowane w taki sam sposób, jak znaczniki OpenMeta - jako rozszerzone atrybuty dołączone do plików w systemie plików. Jedyną różnicą jest to, że nazwa atrybutu to _kMDItemUserTags zamiast kMDItemOMUserTags („OM” w ostatnim znaczniku dotyczy „OpenMeta”). Dane znaczników zarówno znaczników Mavericks, jak i OpenMeta są listami właściwości, ale nie spojrzałem na wewnętrzny format list, więc nie wiem, czy są dokładnie takie same, czy nie. Nie wiem również, jakie, jeśli w ogóle, dyskowe lub alternatywne metody są używane w formatach dyskowych innych niż HFS + - wiem, że hype Apple powiedział, że możesz również oznaczać pliki na iCloud, więc może to być jakiś problem.
Długa i krótka jest jednak to, że przynajmniej na lokalnych dyskach Mac, dane znacznika OpenMeta będą musiały zostać zmigrowane do nowego atrybutu _kMDItemUserTags, aby Maverick mógł je zobaczyć natywnie. Nie jest to wielka sprawa, ale ktoś musi napisać narzędzie, aby to zrobić.