$ cd ~/Library/Preferences
$ ls -1 | grep plist | head -10
AddressBookMe.plist
com.adiumX.adiumX.plist
com.adiumX.adiumX.plist.lockfile
com.apple.AddressBook.plist
com.apple.AddressBook.plist.lockfile
com.apple.BezelServices.plist
com.apple.BezelServices.plist.lockfile
com.apple.BluetoothAudio.plist
com.apple.Console.LSSharedFileList.plist
com.apple.Console.LSSharedFileList.plist.lockfile
untuk apa lockfile ini?
lion
preferences
kch
sumber
sumber
Jawaban:
Apple memasok API Layanan Preferensi Yayasan Core kepada pengembang yang membuatnya mudah bagi mereka untuk mengelola preferensi. Apple menggunakan API yang sama dan file-file kunci ini membantu sistem mengetahui program-program apa yang menulis ke file-file itu dan membantu sistem memberi tahu program yang sedang berjalan ketika suatu pengaturan diubah.
Sistem akan melacak file yang terbuka walaupun Anda membuang dan menghapusnya, tetapi mungkin lebih baik membiarkannya saja (seperti kebanyakan ~ / Perpustakaan) karena tidak ada undo untuk hal-hal yang disimpan di sana - mereka ada untuk mendukung "undo" dari sisa sistem.
sumber
Lockfiles digunakan untuk memastikan hanya satu aplikasi yang berinteraksi dengan file preferensi sekaligus. Idenya adalah aplikasi membuka lockfile dalam mode eksklusif saat ia membuka plist.
Sumber:
sumber
Sayangnya hanya menebak, tetapi biasanya ada kunci untuk menghentikan file yang diedit oleh lebih dari satu hal sekaligus dan menyebabkan korupsi.
Namun jika Anda menjalankan fs_usage di Mac Anda untuk menonton aktivitas sistem berkas, sepertinya tidak ada yang menyentuh file-file ini. Finder tampaknya membaca semuanya kadang-kadang tetapi sepertinya begitu, bahkan jika Anda mengubah pengaturan preferensi di berbagai aplikasi.
sumber
Pernahkah Anda memperhatikan jika Anda dapat melakukan perubahan pengaturan pada aplikasi? Saya melihat kunci-kunci ini juga dan preferensi tidak disimpan ke file plist.
PEMBARUAN: Saya menemukan bahwa ACL sebelumnya ada di tempat yang mencegah saya membuat perubahan pada pengaturan aplikasi. Dengan menghapus ACL menggunakan chmod -R -N pada folder rumah saya, saya sekarang dapat membuat perubahan yang disimpan.
Kent
sumber