Si descarga un archivo de Internet utilizando Safari, se añadirán algunos atributos ampliados al archivo descargado, entre ellos com.apple.metadata:kMDItemWhereFroms
que contiene la URL original de la descarga. En Finder > Get Info el valor de esta tecla se mostrará en De dónde: .
/bin/ls -alh
muestra la presencia de atributos ampliados con un @
en la columna de modo y xattr -l filename.zip
listará todos los atributos.
Según la xattr
para imprimir el valor de un atributo que se puede utilizar:
xattr -p com.apple.metadata:kMDItemWhereFroms filename.zip
# OUTPUT
# com.apple.metadata:kMDItemWhereFroms: bplist00_=https://example.com/filename.zip
Por lo tanto, aunque el contenido sea visible, el valor está en formato binario con una cabecera de bplist00_
.
Intenté analizarlo de la siguiente manera:
xattr -p com.apple.metadata:kMDItemWhereFroms filename.zip > url.plist
# checking the file format:
file url.plist
# OUTPUT:
# url.plist: Apple binary property list
# assuming this should work:
plutil -convert xml1 url.plist
# OUTPUT:
# url.plist: Property List error: Unexpected character b at line 1 / JSON error:
# JSON text did not start with array or object and option to allow
# fragments not set. around line 1, column 0.
Intentando analizar el archivo con el ootb de Python plistlib
también arroja un error:
import plistlib
with open('url.plist', 'rb') as fi:
plist = plistlib.load(fi)
# OUTPUT:
# plistlib.InvalidFileException: Invalid file
Desde la salida parece que no es un formato normal plist binario a pesar de que file url.plist
afirma que es un Apple binary property list
'. ¿Alguna pista sobre cuál es el formato y cómo convertirlo en un valor de texto plano?