मैं आज एक महीने पुराने iMac पर इस में भाग गया। केवल एक चीज जो इसके बारे में ताज़ा नहीं है, वह है मेरा खाता, जिसे जब संभव हो, माइग्रेशन असिस्टेंट का उपयोग करते हुए 5 मशीनों और 12 प्रमुख मैकओएस संस्करणों में दोहराया गया है, इसे ~ / लाइब्रेरी / प्रेफरेंस / में बहुत थोड़े cruft के साथ छोड़ दिया गया है। दुर्भाग्य से, हाल के संस्करणों में Apple ने फाइलों को रौंदकर उस निर्देशिका को प्रभावी ढंग से साफ करना जटिल बना दिया है क्योंकि वास्तविक वरीयता जानकारी का cfprefsd
प्रबंधन करता है और आपको उपयोगिता के साथ अच्छी तरह से बात करने की आवश्यकता है ।defaults
वैसे भी, मुझे लगता है कि हर बार जब मैं इस तरह की लॉग प्रविष्टियों का एक क्रम मिला वरीयता बदलने की कोशिश की:
Jul 14 18:14:03 extravagant sharedfilelistd[411] <Critical>: [default] [<CFString 0x7fff77ea0e00 [0x7fff77f58440]>{contents = "com.apple.LSSharedFileList.RecentApplications"}] List write failed invalid info items: (null) properties: (null)
Jul 14 18:14:03 extravagant sharedfilelistd[411] <Error>: -[ListStore writeListItems:properties:withListIdentifier:notificationHander:] [com.apple.LSSharedFileList.RecentApplications] List write failed invalid info items: (null) properties: (null)
Jul 14 18:14:05 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: Error getting number of recent items of type 2, LSSharedFileListCopyProperty returned NULL
Jul 14 18:14:11 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: New number of recents: 30
Jul 14 18:14:11 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: Error getting number of recent items of type 1, LSSharedFileListCopyProperty returned NULL
Jul 14 18:14:11 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: Error getting number of recent items of type 2, LSSharedFileListCopyProperty returned NULL
Jul 14 18:14:11 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: Error getting number of recent items of type 3, LSSharedFileListCopyProperty returned NULL
Jul 14 18:14:13 extravagant com.apple.xpc.launchd[1] (com.apple.preference.general.remoteservice[85562]) <Notice>: Service exited due to signal: Killed: 9
इसके अलावा, defaults domains
प्राथमिकता में दोनों और कुछ दर्जन फाइलों ने मुझे बताया कि com.example.appname जैसे एक उचित डिफॉल्ट डोमेन वाले अधिकांश अनुप्रयोगों में भी एक डीएलएफ़ डोमेन जैसे com.example.appname.LSSaredFileList था, जिसमें हाल ही में उपयोग की गई फ़ाइलों की सूची थी। सिवाय वे हाल ही में फ़ाइलों का इस्तेमाल नहीं किया गया। मेरे पुराने Yosemite मशीन से माइग्रेशन के बाद से * .LSSedenFileList.plist फ़ाइलों में से कोई भी नहीं बदला था, और न ही com.apple.recentitems.plist थी। इसलिए मैंने इन कमांडों को ~ / लाइब्रेरी / प्रेफरेंस / के अंदर चलाकर घर की सफाई की:
defaults delete com.apple.recentitems
rm com.apple.recentitems.plist*
defaults
आदेश बताता है cfprefsd
कि डोमेन है, जो एक 42-बाइट तार्किक खाली .plist फ़ाइल और 0-बाइट फ़ाइल जो .plist.lockfile पत्ते में सेटिंग्स के सभी को दूर करने के rm
आदेश को हटा।
defaults find LSSharedFileList |grep 'keys in domain .*LSShared'|cut -d"'" -f2 |xargs -L1 defaults delete
rm *LSSharedFileList.plist*
कम स्पष्ट है, लेकिन अनिवार्य रूप से उनके नाम में LSSaredFileList केdefaults
साथ सभी डोमेन के लिए एक ही बात है
find . -name "*.plist" -print0 |xargs -0 -L1 plutil -lint |grep -v ': OK$'|cut -d: -f1|sed 's/.*/"&"/' |xargs rm
इससे भी कम स्पष्ट है, लेकिन स्पष्ट रूप से महत्वपूर्ण है। यह पाइपलाइन मौजूदा निर्देशिका में * .plist फ़ाइलों में से सभी को ढूँढती है (जो कि ~ / लाइब्रेरी / वरीयताएँ / थी), वैधता के लिए हर एक की जाँच करता है plutil -lint
, उन लोगों के फ़ाइलनाम को पार्स करता है जो "ओके" नहीं हैं, उनसे बचाने के लिए उन्हें बताता है। एम्बेडेड रिक्त स्थान और पसंद है, और उन सभी को हटा देता है। मेरे मामले में अमान्य * .plist फाइलें सामान के लिए सभी 0-बाइट एंटीक फाइलें थीं जो वैसे भी एल कैप पर नहीं चल सकती हैं, इसलिए मुझे यकीन था कि मैं किसी भी वास्तविक जानकारी को नहीं हटा रहा था। YMMV !!
find . -size 42c -name "*plist" -delete
इसने 42 * बाइट्स वाली किसी भी * .plist फ़ाइलों को द्विआधारी प्रारूप में तार्किक रूप से खाली प्लिस्ट के आकार से बाहर निकाला। मैं उन लोगों में से कुछ के आसपास फांसी और वे किया था हो सकता है से शिकायत के कारण किया गया है sharedfilelistd
।
killall sharedfilelistd
इसने sharedfilelistd
मेरे खाते के अंतर्गत चलने के उदाहरण को समाप्त कर दिया । सिस्टम ने एक नए उदाहरण को स्वचालित रूप से पुनरारंभ किया। मुझे यकीन नहीं है कि यह आवश्यक था, लेकिन यह विवेकपूर्ण लग रहा था क्योंकि मैंने वरीयताओं के सबसिस्टम से सूचना का एक गुच्छा मिटा दिया था जो कि sharedfilelistd
एल कैप में स्पष्ट रूप से करने के पुराने तरीके से संबंधित था ।
नोट: उन 7 कमांडों ने मेरे द्वारा किए गए अपमानित संस्करण हैं जो प्रभाव बनाये और प्रभाव डाले, लगभग 3 घंटे के आसपास बिखरे रहे और परीक्षण किया और sharedfilelistd
बिना किसी लाभ के जानकारी प्राप्त करने की कोशिश की ।
यह भी ध्यान देने योग्य है कि यहां कोई भी sudo
शामिल नहीं है, क्योंकि मैं अपनी स्वयं की प्राथमिकताओं में हेरफेर करते हुए अपने स्वयं के ~ / पुस्तकालय / प्राथमिकताएं / में था। हाल ही में आइटम मेनू और इसलिए इसकी सेटिंग उपयोगकर्ता-विशिष्ट हैं ताकि जहां भी सेटिंग संग्रहीत की जाती है (कभी भी उस पर काम नहीं किया गया ...) को उपयोगकर्ता-विशिष्ट होना चाहिए, न कि कुछ को ठीक करने के लिए रूट की आवश्यकता होती है। एक पूर्व प्रतिक्रिया है जिसमें एक अस्पष्टीकृत भारी अनुमति / एसीएल / फ्लैग वाइप शामिल है, सुडो के साथ चलाया जाता है, जो लेखक के लिए भी काम नहीं करता है, और गंभीर प्रणालीगत नुकसान का कारण बन सकता है। यह ऐसा कुछ नहीं है। यह भी ध्यान दें कि इसे लॉग आउट करने, रिबूट करने, रिकवरी मोड में बूट करने या कुछ और करने की आवश्यकता नहीं है, जो विघटनकारी होने की संभावना है।