$ 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
do czego służą te pliki blokujące?
lion
preferences
kch
źródło
źródło
Odpowiedzi:
Apple udostępnia programistom interfejs API Core Foundation Preference Services, który ułatwia zarządzanie preferencjami. Apple używa tego samego interfejsu API, a te pliki blokujące pomagają systemowi wiedzieć, jakie programy zapisują do plików, a także pomagają systemowi powiadamiać działający program o zmianie ustawienia.
System będzie śledził plik, który jest otwarty, nawet jeśli go wyrzucisz i usuniesz, ale prawdopodobnie najlepiej zostawić je w spokoju (jak większość ~ / Library), ponieważ nie ma cofania dla rzeczy, które są tam przechowywane - są one do obsługi „cofnięcie” reszty systemu.
źródło
Pliki blokujące służą do upewnienia się, że tylko jedna aplikacja współdziała z plikiem preferencji jednocześnie. Pomysł polega na tym, że aplikacja otwiera plik blokujący w trybie wyłączności podczas otwierania plist.
Źródło:
źródło
Niestety, zgadywanka jest czysta, ale zazwyczaj pliki blokujące służą do zatrzymania edycji pliku przez więcej niż jedną rzecz i spowodowania uszkodzenia.
Jednak jeśli uruchomisz fs_usage na komputerze Mac, aby obserwować aktywność systemu plików, nic nie wydaje się dotykać tych plików. Finder wydaje się czytać je wszystkie od czasu do czasu, ale wydaje się, że tak, nawet jeśli zmienisz ustawienia preferencji w różnych aplikacjach.
źródło
Czy zauważyłeś, czy możesz dokonać zmian ustawień aplikacji? Widzę również te pliki blokujące, a preferencje nie są zapisywane w plikach plist.
AKTUALIZACJA: Odkryłem, że poprzednia lista ACL była na miejscu, co uniemożliwiało mi dokonywanie zmian w ustawieniach aplikacji. Usuwając listy ACL za pomocą chmod -R -N w moim folderze domowym, mogę teraz dokonywać zapisanych zmian.
Kent
źródło