Mac OS X: Dodaj niestandardowe pole metadanych do dowolnego pliku
Chciałbym móc ustawić (i uzyskać) niestandardowy atrybut metadanych dla dowolnego pliku.
Jaki jest najlepszy sposób na to?
Thanks
5 answers
Framework OpenMeta jest de facto zewnętrznym standardem dodawania metadanych do plików OS X przy użyciu rozszerzonych atrybutów. Jest używany przez wiele aplikacji innych firm.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-16 18:14:34
Własne nazwy atrybutów działają dla mnie:
$ xattr -w com.apple.metadata:MyAttribute gfdylvyieo a.txt
$ mdls -n MyAttribute a.txt
MyAttribute = "gfdylvyieo"
$ mdfind gfdylvyieo
/private/tmp/a.txt
$ mdfind 'MyAttribute=*'
/private/tmp/a.txt
xattr -wx
nie jest potrzebne, jeśli wartość jest zwykłym tekstem:
xattr -w com.apple.metadata:kMDItemFinderComment aa file.txt
Gdy dodajesz komentarz Spotlight z Findera, jest on przechowywany zarówno jako Rozszerzony atrybut, jak i w .Plik DS_Store. Jeśli dodasz tylko rozszerzony atrybut, pole komentarza Spotlight będzie puste w Finderze, ale metadane komentarza będą nadal indeksowane przez Spotlight.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-30 18:04:10
To brzmi jak zadanie dla rozszerzonych atrybutów. Można je pobrać i ustawić z linii poleceń za pomocą xattr oraz z programów za pomocą getxattr i setxattr.
Jednak atrybuty rozszerzone nie są (przynajmniej ogólnie) indeksowane przez Spotlight. Jedyny wyjątek jaki znam to " com.jabłko.metadane: atrybut kMDItemFinderComment", który powinien zawierać plist w formacie binarnym z aktualnym, indeksowalnym komentarzem(zobacz odpowiedź @ PurplePilot). to Strona twierdzi, że spotlight będzie indeksować inne xattry poprzedzone przez " com.jabłko.metadane:", ale nie udało mi się.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-16 07:32:08
Jeśli chcesz programowo ustawić "komentarz Findera" pliku (zobacz odpowiedź @PurplePilot), spróbuj tak:
1) Utwórz zwykły plik plist XML z Twoimi komentarzami:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<string>My Custom Comment</string>
</plist>
2) Konwertuj plist do akceptowanego formatu binarnego:
plutil -convert binary1 my_custom_comment.plist
3) używając xattr
, Ustaw metadane kMDItemFinderComment:
xattr -wx "com.apple.metadata:kMDItemFinderComment" "`xxd -ps my_custom_comment.plist`" MyFile
Widać z xattr -l MyFile
że komentarze są tam i w odpowiednim formacie binarnym, ale z jakiegoś powodu Finder tego nie pokazuje (przynajmniej dla mnie) w Kolumna komentarzy.
Wyszukiwanie w bazie spotlight za pomocą mdfind "My Custom Comment"
zwróci wszystkie pliki z tym komentarzem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-18 23:24:43
Kliknij prawym przyciskiem myszy i Info, lub cmd + i po wybraniu pliku w Finderze otworzy panel informacyjny i możesz dodać dane u góry, które będą odwoływane w Spotlight. Nazywa się Spotlight Comments. Możesz to zrobić również z katalogami. Nie jestem pewien, czy to najlepszy sposób, ale jest to jedyny sposób, jaki znam.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-16 07:08:51