Mac OS X: добавьте настраиваемое поле метаданных в любой файл - PullRequest
16 голосов
/ 16 декабря 2011

Я бы хотел установить (и получить) пользовательский атрибут метаданных для любого файла.

Каков наилучший способ сделать это?

Спасибо

Ответы [ 5 ]

15 голосов
/ 30 апреля 2013

Имена пользовательских атрибутов работают для меня:

$ 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 не требуется, если значение представляет собой простой текст:

xattr -w com.apple.metadata:kMDItemFinderComment aa file.txt

Когда вы добавляете комментарий Spotlight из Finder, он сохраняется как расширенный атрибут и в файле .DS_Store. Если вы просто добавите расширенный атрибут, поле комментария Spotlight в Finder будет пустым, но метаданные комментария все еще будут проиндексированы Spotlight.

11 голосов
/ 16 декабря 2011

Фреймворк OpenMeta является де-факто сторонним стандартом для добавления метаданных в файлы OS X с использованием расширенных атрибутов. Используется рядом сторонних приложений.

9 голосов
/ 16 декабря 2011

Это звучит как работа для расширенных атрибутов. Вы можете получить и установить их из командной строки с помощью xattr и из программ с getxattr и setxattr .

Однако расширенные атрибуты (по крайней мере, как правило) не индексируются Spotlight. Единственное исключение, о котором я знаю, это атрибут «com.apple.metadata: kMDItemFinderComment», который должен содержать список в двоичном формате с реальным индексируемым комментарием (см. Ответ @ PurplePilot). Эта страница утверждает, что прожектор будет индексировать другие xattrs с префиксом "com.apple.metadata:", но я не заставил его работать.

4 голосов
/ 19 декабря 2011

Если вы хотите программно установить «Комментарий Finder» файла (см. Ответ @ PurplePilot), попробуйте следующее:

1) Создайте обычный xml plist файл с вашими комментариями:

<!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) Преобразовать лист в принятый двоичный формат:

plutil -convert binary1 my_custom_comment.plist

3) Используя xattr, установите метаданные kMDItemFinderComment:

xattr -wx "com.apple.metadata:kMDItemFinderComment" "`xxd -ps my_custom_comment.plist`" MyFile

С помощью xattr -l MyFile вы можете видеть, что комментарии есть и в правильном двоичном формате, но по какой-то причине Finder не показывает их (по крайней мере для меня) в столбце Комментарии.

Поиск в базе данных прожектора с помощью mdfind "My Custom Comment" вернет все файлы с этим комментарием.

2 голосов
/ 16 декабря 2011

Щелкните правой кнопкой мыши и выберите Info, или cmd + i, когда файл выбран в видоискателе, откроет информационную панель, и вы можете добавить данные вверху, на которые будут ссылаться в Spotlight. Называется Spotlight Comments. Вы можете сделать это и с каталогами. Я не уверен, что это лучший способ, но я знаю, что это единственный способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...