Cuando ejecuto xattr -l
en los elementos de mi carpeta de Descargas, obtengo un campo que se parece a esto:
com.apple.metadata:kMDItemDownloadedDate:
00000000 62 70 6C 69 73 74 30 30 A1 01 33 41 B4 83 4D BF |bplist00..3A..M.|
00000010 4C 4F E3 08 0A 00 00 00 00 00 00 01 01 00 00 00 |LO..............|
00000020 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 00 00 00 13 |.....|
00000035
Este es un plist binario. Cuando uso HexFiend para crear un archivo con esos bytes (sí, los ingresé manualmente; exploté desde el pasado como ingresar código de ensamblador de una revista en mi Apple] [GS), luego lo guardo como un archivo .plist, lo abrí el archivo en TextWrangler y obtuvo el siguiente xml sin compilar:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<date>2011-11-28T05:03:59Z</date>
</array>
</plist>
Dicho esto, aunque Apple parece almacenar las fechas en XML compilado, el texto sin formato parece funcionar.
En otras palabras, si puede obtener la fecha modificada del archivo en forma de cadena, puede ejecutar el comando xattr -w com.apple.metadata:kMDItemDownloadedDate "2012-02-19 16:34:47 +0000" file
para cambiar la "fecha descargada", que parece ser el campo realmente ordenado, no la Fecha real agregada.
Finalmente, no obtuvo ningún error al agregar el campo (no utilizado) kMDItemDateAdded
porque, como aprendí en este artículo , xattr
felizmente establecerá cualquier campo de metadatos que desee, usado o no.
Ese es el núcleo de la respuesta. Trabajaré en escribir un AppleScript para obtener la fecha de modificación de cada archivo, comprobar si se establece kMDItemDownloadedDate
y, si no lo es, establecer kMDItemDownloadedDate en la fecha de modificación, pero quería obtener el núcleo del respuesta publicada.