Quando eseguo xattr -l
sugli elementi nella mia cartella Download, ottengo un campo simile 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, esplodono 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 in chiaro sembra funzionare.
In altre parole, se è possibile ottenere la data di modifica del file in formato 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.
Finalmente non hai ricevuto alcun errore quando aggiungi il campo (inutilizzato) kMDItemDateAdded
perché, come ho imparato in questo articolo , xattr
imposterà felicemente qualsiasi campo di metadati desiderato, usato o inutilizzato.
Questo è il nocciolo della risposta. Lavorerò scrivendo un AppleScript per ottenere la data di modifica per ogni file, controlla se kMDItemDownloadedDate
è impostato, e se non lo è, imposta kMDItemDownloadedDate sulla data di modifica, ma volevo ottenere il nucleo del risposta pubblicata.