किसी ऐप के इतने इंस्टेंस को “ओपन विद” क्यों दिखाता है? [डुप्लिकेट]


17

जब मैं एक फ़ाइल का चयन करता हूं और "ओपन विथ" विकल्प का उपयोग करने के लिए उस पर राइट क्लिक करता हूं, तो मुझे उस फ़ाइल को खोलने के लिए सबसे अधिक संभावित अनुप्रयोगों की एक सूची दिखाई देती है, लेकिन मेरे मामले में, 10.9.5 पर चलने पर, मुझे तीन और कभी-कभी चार उदाहरण दिखाई देते हैं उस विशेष फ़ाइल को खोलने के लिए प्रत्येक अनुशंसित एप्लिकेशन - संलग्न स्क्रीनशॉट देखें। ऐसा क्यों है? वहाँ एक तरीका है कि प्रति app एक उदाहरण के लिए कम करने के लिए है? यदि हां, तो कैसे?

यहाँ छवि विवरण दर्ज करें



माइक, मैं निगरानी में आपके परिश्रम की प्रशंसा करता हूं, हालांकि, मेरा प्रश्न कथित डुप्लिकेट की तुलना में बहुत स्पष्ट है। विचारों की मात्रा इसकी वैधता का प्रमाण है। केवल शीर्षक के आधार पर आप कभी नहीं जान पाएंगे कि यह एक ही विषय था।
fmz

हम हर समय सवालों को बंद करते हैं जब वे समस्या को शांत करते हैं और सभी उत्तरों के लिए एक स्थान पर इंगित करते हैं। यदि आपका प्रश्न इस मुद्दे का अच्छा और स्पष्ट संदर्भ नहीं होता, तो मैं इसे लिंक करने के बाद पूरी तरह से हटा देता। इसे संपादित करने के लिए स्वतंत्र महसूस करें या मेटा पर पूछें कि क्या आप लॉन्च सेवाओं को सही करने के लिए एक बेहतर विहित जवाब देने में हमारी मदद कर सकते हैं। यह कुछ ऐसा है जो लंबे समय से आसपास है और मैं इसे जल्द ही कभी भी बदलते नहीं देखता।
bmike

और, हमेशा की तरह - प्रश्न पूछें अलग मेटा के बारे में यदि आप सुनिश्चित नहीं हैं कि क्यों कुछ संचालित किया गया था या वर्तमान स्थिति की तुलना में एक अलग परिणाम चाहते हैं। धागे पर अधिक आँखें अक्सर हर किसी की मदद करती हैं - मुझे शामिल किया गया। प्रतिक्रिया के लिए धन्यवाद।
bmike

जवाबों:


15

ओएस एक्स के 'ओपन विद' मेनू में डुप्लिकेट प्रविष्टियों को ठीक करने के लिए लॉन्चसर्विस को फिर से बनाएं

इसे ठीक करने के लिए, हमें OS X के LaunchServices डेटाबेस को रीसेट करना होगा। जैसा कि OS X में अधिकांश क्रियाओं के साथ होता है, इस कार्य को पूरा करने के कई तरीके हैं, लेकिन सबसे तेज़ है एक टर्मिनल कमांड का उपयोग करना।

उस लेख से- अपने टर्मिनल में निम्नलिखित कॉपी करें

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

क्या आपका समाधान ग्रार्सराइड के बराबर है। मेरा टर्मिनल-फू उन्हें सटीक रूप से पार्स करने के लिए अच्छा नहीं है, लेकिन वे ऐसे दिखते हैं जैसे उन्हें समान होना चाहिए।
टेटसुजिन

1
@ टेटसुजिन वे समतुल्य हैं। पूर्व में गोलाबारी बाद वाले रास्ते तक फैल जाती है।
GRG

7

यह OS X में एक लंबे समय तक चलने वाला बग है। आप इसे lsregister से ठीक कर सकते हैं:

/Sy*/L*/Fr*/CoreS*/F*/L*/S*/lsregister -kill -r -domain local -domain system -domain user

1
क्या आप इतने दयालु होंगे और कुछ संदर्भ प्रदान करेंगे, आप हम सभी के लिए एक मानक प्रक्रिया जानते हैं।
Ruskes

1
@ बस्कर मेरे पास कोई विशिष्ट उद्धरण नहीं है - यह उन आदेशों में से एक है जो मेरे संदर्भ सूची में हैं।
GRG

2
हेह, कोड गोल्फ से कुछ सीधे दिखता है ;)
डोरकनब

4

अन्य उत्तरों के अलावा, यह कई प्रतियाँ दिखा सकता है जो अन्य हार्ड ड्राइव या बैकअप प्रतियों पर मौजूद हैं। एक बाहरी हार्ड ड्राइव जो आप टाइम मशीन के बैकअप के लिए उपयोग करते हैं, एक विकल्प के रूप में दिखाई दे सकता है यदि आपके एप्लिकेशन उस ड्राइव पर बैकअप हैं।

यदि आप उत्सुक हैं कि ऐप्स कहां से आ रहे हैं, तो अन्य एप्लिकेशन में से एक खोलें। फिर डॉक से, एप्लिकेशन आइकन पर नियंत्रण + क्लिक करें और चुनें: विकल्प> "खोजक में दिखाएं"। यह आपको दिखाएगा कि आवेदन कहां है।

अपने सिस्टम के LaunchServices को अपडेट करने के लिए Buscar by द्वारा प्रदान की गई कमांड लाइन का उपयोग करें।


2

ग्रामसाइड और बस्केर द्वारा प्रदान किए गए उत्तरों पर विस्तार करने के लिए, आप अपनी .bashrc स्क्रिप्ट में एक अन्य को परिभाषित करके दर्द को थोड़ा कम कर सकते हैं। ऐसा करने के लिए, टर्मिनल खोलें। आपके साथ पसंदीदा टेक्स्ट एडिटर (vi, nano, emacs यदि आप बहुत इच्छुक हैं तो) .bashrcको निम्न पंक्ति में जोड़ने के लिए संपादित करें :

alias rmdup="/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain user; killall Finder"

ध्यान दें, rmdupयह सिर्फ एक उपनाम नाम है जिसे मैंने बाद में आसानी से याद रखने के लिए चुना है (इसका अर्थ 'डुप्लिकेट को हटाने के लिए विस्तार करना' है)। आप अपनी पसंद का कोई अन्य उपनाम नाम चुन सकते हैं, बस सावधान रहें कि आप पहले से ही किसी अन्य कमांड के लिए उपयोग किए गए नाम का उपयोग न करें।

अपने .bashrc को बदलने के बाद, जब आप डुप्लिकेट एप्लिकेशन को फिर से नोटिस करते हैं, तो आप केवल टर्मिनल खोल सकते हैं। rmdupजो भी आपने चुना है, lsregisterउसके सभी तर्कों के साथ कमांड के पूर्ण पथ के बजाय, जो भी आपने चुना है, उसे टाइप या टाइप करें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.