Quando corro xattr -l
su elementi nella mia cartella Download, ottengo un campo che assomiglia a questo:
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
Questo è un plist binario. Quando uso HexFiend per creare un file con quei byte (sì, li ho inseriti manualmente; esplodo dal passato come inserire il codice assembler da una rivista nella mia Apple] [GS), quindi salvarlo come file .plist, ho aperto il file in TextWrangler e ha ottenuto il seguente XML non compilato:
<?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>
Detto questo, mentre Apple sembra memorizzare le date in XML compilato, il testo normale sembra funzionare.
In altre parole, se è possibile ottenere la data modificata del file in forma di stringa, è possibile eseguire il comando xattr -w com.apple.metadata:kMDItemDownloadedDate "2012-02-19 16:34:47 +0000" file
per modificare la "data di download", che sembra essere il campo effettivamente ordinato, non la data effettiva aggiunta.
Alla fine non hai riscontrato alcun errore quando aggiungi il kMDItemDateAdded
campo (non utilizzato) perché, come ho appreso in questo articolo , xattr
imposterà felicemente qualunque campo di metadati desideri, utilizzato o non utilizzato.
Questo è il nocciolo della risposta. Lavorerò sulla scrittura di un AppleScript per ottenere la data modificata per ciascun file, verificare se kMDItemDownloadedDate
è impostato e, in caso contrario, impostare kMDItemDownloadedDate sulla data modificata, ma volevo che il nucleo della risposta fosse pubblicato.