Я запускаю Mavericks с Chrome, и когда я загружаю изображение/файл, он сохраняет «Откуда» при просмотре через Get Info. Это также происходит в Safari.
Теперь я понимаю, что существует отдельная история загрузок, которую можно просмотреть и удалить с помощью приемов, описанных в следующей статье: http://www.cultofmac.com/179873/list-your-macs-entire-download-history-at -once-os-x-tips/ Они используются при открытии приложений в первый раз, чтобы показать пользователю, откуда они берутся.
Тем не менее, я удалил это и подтверждаю, что он пуст, но все же отображается в «Откуда». Я провел еще несколько тестов и загрузил изображение для просмотра EXIF и метаданных, но, похоже, оно вообще не хранится в метаданных файлов. Так где же он мог храниться?
Кто-нибудь знает, как хранятся метаданные «Откуда» и где они хранятся. Остается ли он с файлом, если вы поместите файл на USB-накопитель и откроете его на другом компьютере?
Я не очень беспокоюсь о его удалении, но я просто не вижу, откуда он взялся?
Он хранится в расширенном атрибуте файла. В частности, com.apple.metadata:kMDItemWhereFroms
атрибут. Он может остаться с файлом, когда вы переместите его на другой компьютер, но это зависит от используемой вами файловой системы или протокола обмена файлами. Если вы переместите его на другой Mac на диске HFS+, он, скорее всего, сохранит его, но не обязательно, если вы будете передавать по сети, и, скорее всего, не с внешним диском с файловой системой, отличной от HFS+.
Вы можете проверить файл, запустив его xattr -lp com.apple.metadata:kMDItemWhereFroms myfile
в Терминале, или удалить его с помощью xattr -d com.apple.metadata:kMDItemWhereFroms my file
. ls -l@
также полезен флаг; он перечислит имена xattrs вместе с обычной информацией ls.
Если вы хотите удалить его из нескольких файлов, посмотрите на этот вопрос: Как удалить xattr com.apple.quarantine из всех файлов .webarchive с этим расширенным атрибутом?
Загружаемым файлам назначаются расширенные атрибуты, например помещение исполняемыхcom.apple.quarantine
файлов в карантин и com.apple.metadata:kMDItemWhereFroms
данные «Откуда». Наличие этих атрибутов можно выявить в Терминале через ls -l@ /path/to/downloaded/file
.
Теперь, чтобы получить фактические данные, хранящиеся в этом kMDItemWhereFroms, я нашел решение, основанное на этом ответе (который также объясняет немного больше о методе преобразования):
xattr -p com.apple.metadata:kMDItemWhereFroms /path/to/downloaded/file | sed -e 's/0D//g' -e 's/.*\(5F 10\)...//' -e 's/00.*//'| xxd -r -p | sed -e 's@ (.*@@g'
Это вернет URL-адрес. Пожалуйста, обратите внимание, что на данный момент это относительно трудно читаемая форма, так как моя командная строка-фу, кажется, подводит меня. Я обновлю ответ, как только найду подходящий sed
для него.
xattr -p com.apple.metadata:kMDItemWhereFroms "$file" | xxd -r -p | plutil -convert xml1 -o - -
. Если вы хотите получить URL-адреса (у большинства файлов, похоже, их два) сами по себе, на этом этапе правильным будет использовать либо какой-нибудь общий XML-инструмент (например, ), либо какой-либо инструмент, специфичный для plist (can xpath
' тебе там не помогут). (Проверено на 10.8.5.)
Мотти Шнеор