Mac OS X "ओपन" कमांड के समान लिनक्स [बंद]


214

मुझे मैक ओएस एक्स में "ओपन" कमांड मिला है जो कमांड लाइन में बहुत आसान है। "आदमी खुला" से:

openआदेश एक फ़ाइल को खोलता है (या एक निर्देशिका या URL), जैसे कि आपने था फ़ाइल के आइकन को डबल-क्लिक किया। यदि कोई एप्लिकेशन नाम निर्दिष्ट नहीं किया गया है, तो लॉन्च की गई सेवाओं के माध्यम से निर्धारित डिफ़ॉल्ट एप्लिकेशन का उपयोग निर्दिष्ट फाइलों को खोलने के लिए किया जाता है।

यही है, अगर मैं डिफ़ॉल्ट पीडीएफ दर्शक (पूर्वावलोकन होना होता है) के साथ एक पीडीएफ फाइल खोलना चाहता हूं, तो मुझे केवल करने की आवश्यकता है:

open my.pdf

लिनक्स में, हालांकि, कमांड लाइन से एक पीडीएफ फाइल खोलने के लिए, मुझे डिफ़ॉल्ट पीडीएफ दर्शक खोजने के लिए चारों ओर खुदाई करनी थी, उदाहरण के लिए, "ईवियस" (जिसने अनुमान लगाया होगा ??), और फिर

evince my.pdf

तो, क्या लिनक्स कमांड लाइन में 'ओपन' कमांड का एक सरल समकक्ष है?

धन्यवाद!


6
हो सकता है कि इस सवाल को superuser.com पर ले जाया जाए?
quazgar

1
सुपर उपयोगकर्ता अनुचित लगता है - क्या "साधारण उपयोगकर्ता" या संभवतः "प्रोग्रामर जो अन्य अनुप्रयोगों को स्क्रिप्ट करना चाहते हैं" अर्थात स्वचालित करने के लिए स्टैकऑवरफ्लो है?
क्रेजी गेलव

Askubuntu फिट हो सकती है।
गोपुरखान

जवाबों:


238

आप कोशिश कर सकते हैं xdg-open, अधिकांश लिनक्स डिस्ट्रोस में है। यह आपकी फाइल के लिए डिफॉल्ट संबद्ध एप खोलेगा।

FYI करें https://portland.freedesktop.org/doc/xdg-open.html


13
openहालाँकि, इसके बीच एक बड़ा अंतर यह है कि यह फ़ाइल / ऐप को पृष्ठभूमि में नहीं खोलता है। लिनक्स ऐप्स बहुत ही चटपटी लगती हैं और अक्सर आपके टर्मिनल में डायग्नोस्टिक्स और चेतावनियों की कई लाइनों का उत्पादन करती हैं (भले ही वास्तव में कुछ भी गलत नहीं हुआ हो)। मुझे आमतौर पर xdg-open <file> &> /dev/null &इसके बजाय कुछ करना पड़ता है । क्या इस संबंध में xdg-open से बेहतर कुछ है?
सुआन

13
@ सुआन: यह ऐप को "पृष्ठभूमि" में खोलता है, जो टर्मिनल से अलग है, एक तरह से आप ऐप लॉन्च होते ही टर्मिनल में काम करना जारी रख सकते हैं। इसलिए ट्रेलिंग &की जरूरत नहीं है। "डायग्नोस्टिक्स की कई पंक्तियों" के लिए, वे ऐप से ही हैं, से नहीं xdg-open। यदि आप कोई आउटपुट नहीं चाहते हैं, तो आपको सीधे (ओपी के उदाहरण) का &> /dev/nullउपयोग evinceकरने की आवश्यकता होगी , इसलिए आपकी शिकायत शून्य है। xdg-openवास्तव में जाने का रास्ता है।
MestreLion

15
@MestreLion मुझे नहीं लगता कि शिकायत पूरी तरह से शून्य है, क्योंकि मैक के खुले होने से एप्लिकेशन आउटपुट टर्मिनल पर गूँजता नहीं है।
मैक्स नानसी

7
@MaxNanasy: आउटपुट अनुप्रयोगों से है, xdg-openअगर वे गंदी हैं तो यह गलती नहीं है । और ऐसे संदेशों को दबाना उपयोगकर्ता की पसंद होनी चाहिए , न कि xdg की। तो यह "से बेहतर" कुछ के लिए पूछने के लिए एक शून्य शिकायत है xdg-open। इसके अलावा, मैक की अगर openउत्पादन उन संदेशों के कोई विकल्प नहीं है, मैं यह कहना चाहते हैं कि openहै भी बदतर की तुलना में xdg-open, क्योंकि जब आप लांच करने के लिए कमांड लाइन फ़ाइलों का उपयोग आप आमतौर पर (है कि उत्पादन में रुचि रखते हैं अन्यथा, क्यों नहीं बस फ़ाइल को डबल क्लिक करके Nautilus की तरह एक ब्राउज़र में?)
MestreLion

12
@MestreLion हालांकि कोई भी व्यक्ति यह शिकायत कर सकता है कि शिकायत तुच्छ है, क्योंकि alias open='xdg-open &>/dev/null'लगभग वांछित व्यवहार प्राप्त होता है (हालाँकि xdg-open से त्रुटियों के रूप में (केवल लॉन्च किए गए प्रोग्राम के विपरीत) को भी चुप करा दिया जाएगा, जो अवांछनीय है)।
मैक्स नानसी

76

आप जिस समतुल्य की तलाश कर रहे हैं xdg-open, वह उसी तरह से उपयोग किया जा सकता है जैसे कि ओएस एक्स की openकमांड। उदाहरण के लिए:

xdg-open ~/Documents/Chubby_Bubbies.odt

हालांकि, यह वास्तव में जल्दी और सही टाइप करना कठिन है। इसके बजाय, आपको एक्सडीजी-ओपन के लिए एक उपनाम बनाना चाहिए, जो प्रक्रिया को बहुत तेज बनाता है।

बेशक, आप openइसे ओएस एक्स से मेल करने के लिए इसे उर्फ कर सकते हैं (आप जो भी चाहें चुन सकते हैं), लेकिन व्यक्तिगत रूप से, मैं ]गति के कारणों के लिए अपने शॉर्टकट के लिए सही वर्ग ब्रैकेट ( ) का उपयोग करता हूं। इसका उपयोग करने के लिए, अपनी .bashrcफ़ाइल में निम्न जोड़ें :

alias ']'='xdg-open'

फिर, किसी भी संसाधन को खोलने के लिए, इसे इनमें से किसी भी उदाहरण की तरह उपयोग करें:

] www.google.com
] file.txt
] ~/Pictures
] ssh://myserver.local/home/jeremy

इसके अलावा यह आपको वर्तमान निर्देशिका में एक फ़ाइल ब्राउज़र (जैसे Nautilus) खोलने देता है:

] .

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


26
मैंने इसे 'ओपन' से 'xdg-open' बनाने के लिए एक उपनाम बनाया, ताकि यह लिनक्स और मैक दोनों पर संगत हो।
एडम बर्टेक

यह अच्छा है, लेकिन महान नहीं, मैंने एक .url फ़ाइल खोलने की कोशिश की और इसे gedit में खोला।
सोरिन

18
@ सोरिन क्या आप इसे ध्वनि बनाने की कोशिश कर रहे हैं जैसे कि मेरी गलती है ?!
जेरेमी विससर

7
@sorin: xdg-openफ़ाइल के लिए आपके सिस्टम का डिफ़ॉल्ट एप्लिकेशन खोलता है। आपके मामले में, .urlफाइलें gedit में खोलने के लिए सेट हैं। यदि आप इसे बदलना चाहते हैं, तो Nautilus में फ़ाइल को राइट-क्लिक करें और गुण> ओपन के साथ डिफ़ॉल्ट एप्लिकेशन को बदलने के लिए जाएं, और xdg-openउसी के अनुसार काम करेंगे।
MestreLion

यहाँ एक Gist है जिसे मैंने बनाया है, बस पहली टिप्पणी में 'कुल मिलाकर' अनुभाग के तहत कॉपी-पेस्ट और निष्पादित कमांड।
ozanmuyes

14

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

एक स्क्रिप्ट बनाएं जिसका नाम openमें ~/bin, सामग्री बस है:

xdg-open "$1" &> /dev/null &

स्क्रिप्ट को सहेजें और बंद करें, फिर "स्रोत .profile" टाइप करें (या यदि प्रासंगिक हो तो .bash_profile)। ऐसा करने से "ओपन म्यूज़िक" टाइप करने से आपका म्यूज़िक फ़ोल्डर नॉटिलस GUI में खुल जाएगा और आपके टर्मिनल पर कुछ भी दर्ज नहीं होना चाहिए।


उपनाम और अजीब स्थान के साथ क्या है? बस स्क्रिप्ट को कॉल करें openऔर इसे अपने PATH में डालें (आमतौर पर $HOME/bin/open)
tripleee

मेरी मशीन पर (ubuntu 11.10) यदि आप अपने रास्ते में 'ओपन' नामक एक स्क्रिप्ट जोड़ते हैं, और उस तरह से करने की कोशिश करते हैं, जो इसे / बिन / खुले द्वारा ओवरले किया जाता है। इसलिए मैं बिना उर्फ ​​के काम करने का अपना तरीका नहीं बना सकता।
Anake

ट्रिक को अपनी स्क्रिप्ट को एक डायरेक्टरी में रखना होता है जो पहले की PATHतुलना में आपके पास आती है /bin। यदि आप $HOME/binइसे किसी भी सिस्टम निर्देशिका से पहले, PATH की शुरुआत में जोड़ दिया जाएगा , तो सम्मेलन द्वारा । आमतौर पर, यह आपके .profileया समान द्वारा किया जाता है । उदाहरण के लिए, .profileUbuntu पर डिफ़ॉल्ट बिल्कुल यही करता है।
ट्रिपलए

2
उत्पादन को पुनर्निर्देशित करना /dev/nullथोड़ा सा है; शायद आप आउटपुट को $HOME/.xsession-errorsया कुछ ऐसे में पुनर्निर्देशित कर सकते हैं , ताकि किसी समस्या का निवारण करने के लिए निदान पूरी तरह से खो न जाए।
ट्रिपल

1
@ एफडी: सभी चर को ठीक से उद्धृत करना एक अच्छा प्रोग्रामिंग अभ्यास है, और बैश स्क्रिप्ट में महत्वपूर्ण है। इससे कोई लेना-देना नहीं है xdg-open, यह एक शेल इश्यू है।
MestreLion

11

परंपरागत रूप से, आप "देख" कमांड का उपयोग कर सकते हैं। जो सिर्फ रन-मेलकैप का उपयोग करता है। यह सूक्ति और एक्स आदि के बिना काम करेगा।

man see

3
समस्या run-mailcap(और इसके कई उपनाम) एक अलग (और बहुत पुरानी) ऐप एसोसिएशन डेटाबेस का उपयोग करती है। उदाहरण के लिए, मेरे सिस्टम में, जबकि .mp3VLC में गाने सही तरीके से खुलते हैं, .txtफाइलें कम खुलती हैं (gedit के बजाय) और .pdfफाइलें बस खोलने में विफल रहती हैं! (त्रुटि: कोई "दृश्य" प्रकार "आवेदन / पीडीएफ" के लिए पाए गए मेल नहीं हैं)
मैस्टेरियन

जैसा कि मैंने कहा, यह प्रत्येक प्रणाली पर निर्भर करता है। कुछ अनुप्रयोग खुद को एक तरह से पंजीकृत करते हैं जो run-mailcapउन्हें पहचानता है। xdg-openआंतरिक रूप से gvfs-open(ग्नोम सिस्टम पर उबंटू की तरह) का उपयोग करता है, जो बदले में xdg के माइम-डेटाबेस युक्ति का उपयोग करता है, जो अब तक अधिक अनुप्रयोगों का उपयोग करता है।
MestreLion

gimpमेरे लिए एक 50+ पृष्ठ पीडीएफ खोला । मैं साथ रहूँगा xdg-open
user1717828

lessX'D में टिक्‍स फाइलें खोलना
टिमो

4

GNOME खुले


7
gnome-open अब हटा दिया गया है, और इसके अलावा यह पहले से ही आंतरिक रूप से उपयोग किया जाता था xdg-openयदि उपयोगकर्ता Gnome (अब यह उपयोग करता है gvfs-open) पर था
MestreLion

2

यदि आपके पास अपना माइम सेटअप सही ढंग से है, तो आप उपयोग कर सकते हैं mimeopen। इसके मैन पेज को देखें, क्योंकि इसमें कुछ उपयोगी विकल्प हैं।


1
अच्छा होगा यदि इस उत्तर का विस्तार किया गया। मुझे यह देखने में दिलचस्पी होगी कि यह कैसे काम करता है
मैग्नस

-3

सूक्ति डेस्कटॉप वातावरण के तहत, मैं निम्नलिखित कमांड का उपयोग करता हूं:

nautilus `pwd` &

यह "खुला" के समान है। मैक में कमांड


11
इस उत्तर में कई मुद्दे हैं: ए) यह वर्तमान निर्देशिका को खोलता है, न कि फ़ाइल, जैसा कि उपयोगकर्ता ने अनुरोध किया है। बी) का उपयोग कर सकते ."के बजाय pwd" सी) यदि आप बदलना pwdकिसी फ़ाइल के लिए, उपयोगकर्ता अभी भी दर्ज करने के बाद नॉटिलस डी) खुलने नॉटिलस खोलता पहले बस के लिए हिट करने के लिए की आवश्यकता होगी यह फ़ाइल खोलने के लिए एक बहुत ही अप्रत्यक्ष समाधान है।
MestreLion
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.