Мне бы хотелось установить (и получить) собственный атрибут метаданных для любого файла.
Каков наилучший способ сделать это?
Спасибо
Мне бы хотелось установить (и получить) собственный атрибут метаданных для любого файла.
Каков наилучший способ сделать это?
Спасибо
Структура 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. Вы можете сделать это и с каталогами. Я не уверен, что это лучший способ, но это единственный способ, которым я знаю это.