Kiedy uruchamiam xattr -l
elementy w folderze Pobrane, otrzymuję pole, które wygląda mniej więcej tak:
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
To jest plista binarna. Kiedy używam HexFiend do tworzenia pliku z tymi bajtami (tak, ręcznie je wprowadziłem; wybuch z przeszłości, jak wprowadzanie kodu asemblera z magazynu do mojego Apple] [GS), a następnie zapisz go jako plik .plist, otworzyłem plik w TextWrangler i otrzymałem następujący nieskompilowany plik 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>
To powiedziawszy, podczas gdy Apple wydaje się przechowywać daty w skompilowanym XML, zwykły tekst wydaje się działać.
Innymi słowy, jeśli możesz uzyskać datę modyfikacji pliku w postaci ciągu, możesz uruchomić polecenie xattr -w com.apple.metadata:kMDItemDownloadedDate "2012-02-19 16:34:47 +0000" file
zmiany „daty pobrania”, która wydaje się być polem faktycznie posortowanym, a nie faktyczną datą dodania.
W końcu nie wystąpił błąd podczas dodawania (nieużywanego) kMDItemDateAdded
pola, ponieważ, jak dowiedziałem się w tym artykule , xattr
z przyjemnością ustawię dowolne pole metadanych, które chcesz, będzie używane lub nieużywane.
To jest sedno odpowiedzi. Będę pracować nad napisaniem AppleScript, aby uzyskać zmodyfikowaną datę dla każdego pliku, sprawdź, czy kMDItemDownloadedDate
jest ustawiony, a jeśli nie, ustaw kMDItemDownloadedDate na zmodyfikowaną datę, ale chciałem opublikować rdzeń odpowiedzi.