Finder di Mac OS X 10.7 Lion menunjukkan potongan metadata file baru, "Date Added," yang melacak tanggal item ditambahkan ke folder. Setelah memutakhirkan ke 10.7, tidak ada item di ~/Downloads
folder saya yang memiliki nilai "Tanggal Ditambahkan". Saya ingin menetapkan semua nilai "Tanggal Tambah" kosong agar cocok dengan nilai "Tanggal Dimodifikasi", tetapi saya tidak tahu cara mengatur atribut "Tanggal ditambahkan" ke nilai tertentu.
Tebakan pertama saya adalah ini:
xattr -w com.apple.metadata:kMDItemDateAdded "2012-02-19 16:34:47 +0000" myfile
Tapi itu sepertinya tidak berhasil (meskipun tidak melaporkan kesalahan juga).
Jawaban:
Oke, pendekatan baru di sini. Perhatian: Saya tidak memiliki sistem yang ditingkatkan ke Lion (komputer saya dilengkapi dengan Lion yang diinstal) jadi saya tidak dapat menguji ini. Kode yang belum diuji; cadangkan sebelum mencoba kode ini!
Jawaban saya sebelumnya didasarkan pada urutan pengurutan yang digunakan oleh tumpukan Unduhan di Dock. Bidang Tanggal Ditambahkan dalam Finder tampaknya didasarkan pada informasi Spotlight, yang sulit diretas. Itu juga tidak dapat diakses melalui AppleScript. Tapi, sepertinya ada solusi.
Buat Workflow baru di Automator.
Tetapkan alur kerja untuk menerima file atau folder dari Finder dengan menambahkan tindakan "Tanya item Finder".
Mintalah alur kerja menjalankan AppleScript dengan menambahkan tindakan "Jalankan AppleScript".
Gunakan AppleScript ini:
Pilih file yang belum memiliki Date Added (urutkan berdasarkan Date Added di Finder, lalu pilih bagian dari daftar tanpa Date Added) dan jalankan layanan ini.
sumber
/.Spotlight-V100
, ini mungkin sama baiknya dengan yang didapat. Tapi aku senang melihat jawaban bersih.$
namanya, tapi saya mengatasinya dengan mengganti nama sementara file itu. Untuk membuat AppleScript menangani file seperti itu, pencarian saya menunjukkan bahwa Anda dapat menggantinyamyfile
denganquoted form of myfile
, tetapi saya belum mengujinya. Jika seseorang mencobanya, mungkin akan lebih jelas untuk melakukan penawaran ketika mengaturmyfile
dan mengganti nama variabel menjadiquotedFilePath
.Ketika saya menjalankan
xattr -l
item di folder Unduhan saya, saya mendapatkan bidang yang terlihat seperti ini:Ini adalah plist biner. Ketika saya menggunakan HexFiend untuk membuat file dengan byte tersebut (ya, saya secara manual memasukkannya; hast dari masa lalu seperti memasukkan kode assembler dari majalah ke Apple saya] [GS), lalu simpan sebagai file .plist, saya membuka file di TextWrangler dan mendapat xml terkompilasi berikut:
Yang mengatakan, sementara Apple tampaknya menyimpan tanggal dalam XML yang dikompilasi, teks biasa tampaknya berfungsi.
Dengan kata lain, jika Anda bisa mendapatkan tanggal modifikasi file dalam bentuk string, Anda dapat menjalankan perintah
xattr -w com.apple.metadata:kMDItemDownloadedDate "2012-02-19 16:34:47 +0000" file
untuk mengubah "tanggal yang diunduh", yang tampaknya merupakan bidang yang benar-benar disortir, bukan Tanggal aktual yang ditambahkan.Akhirnya Anda tidak mendapatkan kesalahan saat menambahkan bidang (tidak digunakan)
kMDItemDateAdded
karena, seperti yang saya pelajari di artikel ini ,xattr
akan dengan senang hati mengatur bidang metadata apa pun yang Anda inginkan, digunakan atau tidak digunakan.Itulah inti dari jawabannya. Saya akan bekerja menulis AppleScript untuk mendapatkan tanggal yang dimodifikasi untuk setiap file, periksa untuk melihat apakah
kMDItemDownloadedDate
sudah diatur, dan jika tidak, atur kMDItemDownloadedDate ke tanggal modifikasi, tetapi saya ingin mendapatkan inti dari jawaban yang diposting.sumber
xattr -p com.apple.metadata:kMDItemDownloadedDate FILENAME_HERE | xxd -r -p | plutil -convert xml1 - -o -
. Xxd mengkonversi ke data binary plist, kemudianplutil
mengkonversi ke XML plist dan mencetaknya.xattr -l
, dan kMDItemDownloadedDate tidak terdaftarmdls
. Ingin tahu dan ingin tahu. Field Date Added tidak disimpan dalam xattr untuk direktori . Di mana metadata ini tinggal?xattr
ini adalah skrip python, saya kira itu mungkin untuk melihat-lihat dalam skrip ini dan mencari cara untuk mendapatkan data biner dari atribut dalam biner, bukan hex, sehingga Anda dapat memberinya makan secara langsungplutil
.Saya tidak dapat menemukan cara untuk mengatur "Tanggal Ditambahkan" yang ditampilkan di Finder.
Saya yakin Anda benar bahwa itu diambil dari
kMDItemDateAdded
atribut metadata indeks Spotlight . Namun, Spotlight tampaknya menurunkan ini sendiri dalam beberapa cara.Saya sudah mencoba menyiapkan atribut file diperluas yang dipanggil
com.apple.metadata:kMDItemDateAdded
ke nilai tanggal dalam salah satu dari beberapa format yang berbeda, termasuk format yang digunakan olehkMDItemDateAdded
dan tidak ada yang diambil oleh indeks Spotlight, yaitu tidak peduli berapa nilainya ditunjukkan olehxattr
, nilainya ditunjukkan olehmdls
tidak diubah.Saya akan menebak , meskipun saya tidak tahu pasti, bahwa Spotlight hanya menetapkan tanggal ini berdasarkan pertama kali indeks file di lokasi tertentu, dan tidak memeriksa metadata lain untuk menghasilkannya. Jika Anda
mv
sebuah file dari Unduhan dan kembali, Tanggal Ditambahkan memperbarui ketika itu dipindahkan kembali, tetapi tidak ada satu pun metadata file yang terpengaruh, hanya metadata Spotlight.Jadi, secara ringkas, saya rasa Date Added hanya disimpan di suatu tempat di nyali /.Spotlight-V100 yang agak samar, dan kecuali seseorang dapat menemukan cara memberitahu Spotlight untuk memperbarui entri metadata ke nilai sewenang-wenang, saya bisa ' t melihat cara melakukan ini.
sumber
Terima kasih kepada Daniel Lawson untuk solusinya! Itu masih bekerja dengan baik, bahkan dua tahun kemudian.
Saya memiliki dua tambahan:
1) Harap dicatat bahwa ada kesalahan kecil dalam kode jawaban yang diterima.
Garis ini:
... memiliki apostrof tambahan, memicu kesalahan "EOF yang tidak terduga". Itu harus membaca:
2) Lebih penting, dimulai dengan Mavericks 10.9.2, pengaturan sistem membutuhkan hak administrator. Jadi setiap skrip panggilan ke shell harus mengikuti rumus ini:
Inilah versi AppleScript yang dimodifikasi penuh, yang dikonfirmasikan berfungsi di 10.9.3:
sumber