Cuando corro 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 introduje manualmente; una explosión del pasado como introducir código ensamblador de una revista en mi Apple ][GS), y luego lo guardo como un archivo .plist, abrí el archivo en TextWrangler y obtuve 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 plano parece funcionar.
En otras palabras, si puede obtener la fecha de modificación 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 de descarga", que parece ser el campo realmente ordenado, no la fecha real de adición.
Finalmente no tienes ningún error al añadir el (no usado) kMDItemDateAdded
campo porque, como aprendí en este artículo , xattr
establecerá felizmente cualquier campo de metadatos que desee, utilizado o no.
Ese es el núcleo de la respuesta. Voy a trabajar en la escritura de un AppleScript para obtener la fecha de modificación de cada archivo, comprobar para ver si kMDItemDownloadedDate
y, si no lo está, establecer kMDItemDownloadedDate a la fecha de modificación, pero quería obtener el núcleo de la respuesta publicada.
0 votos
¿Ha acabado encontrando una solución?
1 votos
La respuesta aceptada funcionó cuando la probé (por disparatada que sea).