मैं वास्तव में अंतर नहीं समझता। मैं / usr / बिन में एक .app फ़ाइल डालने और अगर टर्मिनल से क्रियान्वित करने की कोशिश की, लेकिन वह कुछ भी नहीं करता है। वहां किस तरह की फाइलें जाती हैं?
मैं वास्तव में अंतर नहीं समझता। मैं / usr / बिन में एक .app फ़ाइल डालने और अगर टर्मिनल से क्रियान्वित करने की कोशिश की, लेकिन वह कुछ भी नहीं करता है। वहां किस तरह की फाइलें जाती हैं?
जवाबों:
विकिपीडिया में Application बंडल s पर एक अच्छा लेख है ।
संक्षेप में, .appयह एक फ़ाइल नहीं है: यह एक विशिष्ट संरचना के साथ एक निर्देशिका पेड़ है। वास्तविक बाइनरी जो चलती है (यानी, बाइनरी के बराबर जो आपको मिलेगी /usr/bin) है PackageName.app/Contents/MacOS/PackageName। हालाँकि, आप (आम तौर पर) उस फ़ाइल को '/ usr / bin' पर कॉपी नहीं कर सकते हैं और इसे चला सकते हैं, क्योंकि यह बहुत सी अन्य फ़ाइलों की अपेक्षा करेगा। इसे .app फ़ोल्डर के अंदर भी - उदाहरण के लिए, कई एप्लिकेशन हैं। अनुवाद फाइलें जो उन्हें अलग-अलग भाषाओं में यूआई को प्रस्तुत करने की अनुमति देती हैं PackageName.app/Contents/Resources/de.lproj(जहां deइसका मतलब होता है german)।
कुछ मामलों में, .appबंडल में निष्पादन योग्य शामिल हो सकते हैं जिन्हें आप सीधे निष्पादित कर सकते हैं - उदाहरण के लिए, मैं अक्सर चलने ebook-convertसे calibre.appबंडल से बाइनरी का उपयोग करता हूं /Applications/calibre.app/Contents/Resources/loaders/ebook-convert। इस मामले में, ईबुक-कन्वर्ट एक स्व-निहित अजगर स्क्रिप्ट के रूप में होता है और इस तरह से पूरी तरह से खुश होने के लिए कहा जाता है - सभी निष्पादन योग्य उतना खुश नहीं होंगे।
आप आमतौर पर .appमुख्य बाइनरी को सीधे कॉल करके शुरू कर सकते हैं - जैसे, /Applications/Safari.app/Contents/MacOS/Safariसफारी लॉन्च करेंगे। हालांकि, यह बहुत टाइपिंग है - open /Applications/Safari.appएक शॉर्टकट है जो समान कार्य करता है।
man openउपयोग openकरने के कई और उदाहरण हैं जैसे कि उपयोगकर्ता ने खोजक में एक आइकन पर डबल-क्लिक किया था।
जैसा कि टॉमस मार्कोकस ने कहा, .app एक बंडल है।
आपने .app फ़ाइल को / usr / bin में स्थानांतरित करने का प्रयास क्यों किया? मैं यह अनुमान लगाने जा रहा हूं कि आप वास्तव में क्या जानना चाहते हैं "जब मैं कमांड लाइन पर हूं तो मैं Foo.app का उपयोग करके एक फ़ाइल कैसे खोलूं?"
यदि मैं सही हूं, तो उत्तर .app फ़ाइल को / usr / bin में स्थानांतरित करने के लिए नहीं है। सही उत्तर openकमांड का उपयोग करना है :
$ open -a Foo some_file
फ़ाइल को उसके डिफ़ॉल्ट एप्लिकेशन के साथ उपयोग openकिए बिना -a- जैसे कि आप some_fileखोजक पर डबल-क्लिक करते हैं ।
.app वास्तव में एक फाइल नहीं है, बल्कि एक फ़ोल्डर (या एप्लिकेशन बंडल) है जिसमें कई अलग-अलग फाइलें हैं। इसमें निष्पादन योग्य फाइलें भी शामिल हैं जिन्हें आप वास्तव में चलाते हैं।