Ответ 1
Структура OpenMeta является де-факто сторонним стандартом для добавления метаданных в файлы OS X с использованием расширенных атрибутов. Он используется рядом сторонних приложений.
Мне бы хотелось установить (и получить) собственный атрибут метаданных для любого файла.
Каков наилучший способ сделать это?
Спасибо
Структура OpenMeta является де-факто сторонним стандартом для добавления метаданных в файлы OS X с использованием расширенных атрибутов. Он используется рядом сторонних приложений.
Пользовательские имена атрибутов работают для меня:
$ 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.
Это звучит как задание для расширенных атрибутов. Вы можете получить и установить их из командной строки с помощью xattr и из программ с getxattr и setxattr.
Однако расширенные атрибуты (как минимум, вообще) не индексируются Spotlight. Единственное исключение, которое я знаю об этом, - это атрибут com.apple.metadata: kMDItemFinderComment, который должен содержать бинарный формат с фактическим индексируемым комментарием (см. Ответ @PurplePilot). Эта страница утверждает, что прожектор будет индексировать другие xattrs с префиксом "com.apple.metadata:", но я не получил его для работы.
Если вы хотите программно установить "Комментарий к 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"
будет возвращать все файлы с этим комментарием.
Щелкните правой кнопкой мыши и Info, или cmd + i, когда файл будет выбран в Finder, откроет информационную панель, и вы можете добавить данные вверху, на которые будут ссылаться в Spotlight. Вызывается комментарии Spotlight. Вы можете сделать это и с каталогами. Я не уверен, что это лучший способ, но это единственный способ, которым я знаю это.