Коли я запускаю xattr -l
елементи в папці "Завантаження", я отримую поле, яке виглядає приблизно так:
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
Це бінарний пліст. Коли я використовую HexFiend для створення файлу з тими байтами (так, я вручив їх вручну; вибух з минулого, наприклад, введення коду асемблера з журналу в мій Apple] [GS), а потім зберегти його як файл .plist, я відкрив файл у TextWrangler і отримав наступний некомпільований xml:
<?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>
Це говорить, хоча Apple, схоже, зберігає дати у складеному XML, звичайний текст, здається, працює.
Іншими словами, якщо ви можете отримати модифіковану дату файлу у рядковій формі, ви можете запустити команду xattr -w com.apple.metadata:kMDItemDownloadedDate "2012-02-19 16:34:47 +0000" file
змінити "завантажену дату", яка, як видається, є полем, фактично відсортованим, а не фактично доданою датою.
Зрештою, ви не помилилися під час додавання (невикористаного) kMDItemDateAdded
поля, оскільки, як я дізнався у цій статті , з xattr
радістю встановить усі потрібні, використані чи невикористані поля метаданих.
У цьому і полягає суть відповіді. Я буду працювати над написанням AppleScript, щоб отримати модифіковану дату для кожного файлу, перевірити, чи kMDItemDownloadedDate
встановлено, а якщо ні, встановіть kMDItemDownloadedDate на модифіковану дату, але я хотів, щоб ядро відповіді було опубліковано.