Mac OS X: добавьте настраиваемое поле метаданных в любой файл

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

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

Спасибо

Ответы

Ответ 1

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

Ответ 2

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

$ 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.

Ответ 3

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

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

Ответ 4

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

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

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

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" будет возвращать все файлы с этим комментарием.

Ответ 5

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