क्या कमांड लाइन के लिए "ओपन विथ" कमांड है?


24

क्या कमांड लाइन में फ़ाइल प्रकार के आधार पर किसी विशेष फ़ाइल को खोलने के लिए उपयोग किए जाने वाले कार्यक्रमों की अनुशंसित सूची प्राप्त करने का एक तरीका है? उदाहरण के लिए, एक .pdfफ़ाइल open with...में कार्यक्रमों का उपयोग करने के लिए एक सिफारिश होगी Evinceऔर Document Viewer

मैं ज्यादातर चीजों के लिए कमांड लाइन का उपयोग करता हूं, लेकिन कभी-कभी मैं एक प्रोग्राम का नाम भूल जाता हूं जिसे मैं एक विशेष प्रकार की फ़ाइल खोलने के लिए उपयोग करना चाहता हूं।

BTW मैं Ubuntu 13.10 का उपयोग कर रहा हूं।

प्रो टिप

नीचे दिए गए @slm के चयनित उत्तर के लिए धन्यवाद, मैंने निम्नलिखित बैश स्क्रिप्ट को एक फ़ाइल में बनाया है openwith.sh:

xdg-mime query default $(xdg-mime query filetype $1)

एक उपनाम के रूप में जोड़ें या एक openwithकमांड के रूप में सीधे निष्पादित करें ।


1
आप के साथ कोशिश कर सकते हैं gnome-open file। मैंने सादगी के alias o='gnome-open'लिए अपने साथ जोड़ा है .bashrc
पाल जीडी

gnome-openके समान काम करता है xdg-open
स्लम

जवाबों:


33

ऐसा कोई आदेश नहीं है जिसे मैंने कभी देखा हो जो "ओपन के साथ ..." के रूप में कार्य करेगा, लेकिन आप उस एप्लिकेशन का उपयोग करने के लिए कमांड xdg-open <file>का उपयोग कर सकते हैं जो <file>उस विशेष प्रकार की फ़ाइल के साथ जुड़ा हुआ है।

उदाहरण

पाठ फ़ाइल खोलना:

$ xdg-open tstfile.txt
$

फ़ाइल tstfile.txtको खोलने के परिणामस्वरूप gedit:

                         gedit के एस.एस.

एक लिबर ऑफिस लेखक खोलना:

$ xdg-open tstfile.odt 
$

tstfile.odtलेखक में खोली जा रही फ़ाइल का परिणाम :

                         लेखक के एस.एस.

क्या ऐप इस्तेमाल करते हैं?

आप यह xdg-mimeजानने के लिए सिस्टम का उपयोग कर सकते हैं कि किसी दिए गए फ़ाइल प्रकार से क्या अनुप्रयोग जुड़े हैं।

$ xdg-mime query default $(xdg-mime query filetype tstfile.txt)
gedit.desktop calibre-ebook-viewer.desktop

$ xdg-mime query default $(xdg-mime query filetype tstfile.odt)
libreoffice-writer.desktop calibre-ebook-viewer.desktop

यह एक 2 कदम ऑपरेशन है। पहले मैं किसी दिए गए फ़ाइल के माइम-प्रकार के लिए क्वेरी कर रहा हूं xdg-mime query filetype tstfile.txt, जो वापस आ जाएगी text/plain। इसके बाद इस माइम-प्रकार से जुड़े अनुप्रयोगों की सूची का पता लगाने के लिए एक और लुकअप करने के लिए उपयोग किया जाता है। जैसा कि आप ऊपर देख सकते हैं कि मेरे पास 2 एप्लिकेशन हैं, geditऔर calibre, .txtफ़ाइलों के लिए।

आप xdg-mimeसंघों को बदलने के लिए भी उपयोग कर सकते हैं । man xdg-mimeअधिक जानकारी के लिए देखें।


क्या डिफ़ॉल्ट लोगों के अलावा अन्य प्रकार के कार्यक्रमों को प्रदर्शित करने का कोई तरीका है? उदाहरण के लिए, मैं सिर्फ okularपीडीएफ देखने के लिए स्थापित किया गया था, लेकिन ऊपर का उदाहरण केवल दिखाता है evinceजब मैं इसे .pdf फ़ाइल पर चलाता हूं।
modulitos

1
@ लुकास - हां मैंने जो उदाहरण दिखाए हैं, वे एप्लिकेशन दिखाते हैं जो ऊपर दिए गए फ़ाइल प्रकार से जुड़े हैं। पूर्व के लिए। प्रकार की फाइलें .txtउदाहरण के लिए गेडिट और कैलिबर से जुड़ी हैं।
SLM

क्या मुझे .desktopउन कार्यक्रमों के लिए फाइलें चाहिए जो मुझे सूचीबद्ध हैं? उदाहरण के लिए, जब मैं किसी .pdfफ़ाइल पर स्क्रिप्ट चलाता हूं , तो वह वापस आ जाती है evince.desktop, हालांकि मैं भी चला सकता हूं okular
modulitos

@ लुकास - यह शायद सबसे अच्छा एक नया क्यू के रूप में पूछा जाता है, क्योंकि हम अब मूल क्यू से दूर कर रहे हैं।
SLM

5

यदि आप ज्यादातर कमांड लाइन पर काम करते हैं, तो आप शाप-आधारित फ़ाइल प्रबंधक को देख सकते हैं, जैसे रेंजर या vifm । दोनों ही आपको फ़िलिप के लिए डिफ़ॉल्ट क्रियाओं को परिभाषित करने की अनुमति देते हैं।

उदाहरण के लिए, ~/.vifm/vifmrcआप इस तरह से संघों को परिभाषित कर सकते हैं:

" Images
filetype *.jpg,*.jpeg,*.gif,*.tif,*.png,*.bmp sxiv 

" Media
filetype *.flv,*.avi,*.mp4,*.mpeg,*.mpg,*.mov,*.ogg,*.ogv,*.mkv mpv 

" Web
filetype *.html,*.htm,*.shtml /home/jason/Scripts/vimprobtab.sh 

" PDF
filetype *.pdf apvlv

Enterपरिभाषित कार्यों में से किसी एक फ़ाइल के साथ कर्सर को किसी भी फ़ाइल पर हिट करने से यह प्रासंगिक एप्लिकेशन द्वारा खोला जाएगा। जैसा कि आप .htmlफ़ाइलों के मामले में देख सकते हैं , आप एक स्क्रिप्ट के साथ-साथ एक एप्लिकेशन को भी ट्रिगर कर सकते हैं।


5

क्रमबद्ध करें, लेकिन यह परिणामस्वरूप आपके डिफ़ॉल्ट एप्लिकेशन को बदल देगा। मुझे यकीन नहीं है कि यह किस अन्य ऑपरेटिंग सिस्टम पर काम करता है, लेकिन नीचे दिए गए निर्देश उबंटू 12.04 - डेस्कटॉप X86-64 के लिए काम करते हैं। मेरे पास कोई पीडीएफ फाइलें नहीं थी, इसलिए मैंने एक .zip संग्रह के साथ परीक्षण किया।

सामान्य चरण

चरण 1

एक टर्मिनल प्रकार में:

$ mimeopen -d /home/username/example.zip
स्क्रीनशॉट # 1 = https://copy.com/qfWSZaZ4FzlA

    ss # १

चरण 2

#इच्छित एप्लिकेशन में प्रवेश करके , और दबाकर सूची से चुनें enter। आपके द्वारा चुने गए एप्लिकेशन में फ़ाइल तुरंत खुल जाएगी।

स्क्रीनशॉट # 2 = https://copy.com/um6Rf7zRdceT

    ss # 2

स्क्रीनशॉट # 3 = https://copy.com/ytwKCqR6nv8i

    ss # ३

टिप्पणियाँ

नोट 1

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


क्या आपका मतलब स्क्रीनशॉट 3 के URL में हैश साइन (#) डालना है?
ट्राइसिस

@trysis मैं सिर्फ अधिकतम 2 यूआरएल सीमा को बाईपास करने के लिए इसका इस्तेमाल किया।
कृपया मुझे

ओह, समझ में आता है। हालांकि अभी भी अजीब लग रहा है।
कोशिश

मैंने आपको A साफ़ किया और आपके लिए 3rd URL जोड़ा।
स्लम

2

मुझे लगता है कि आप उपयोग कर रहे हैं यूनिक्स के स्वाद पर निर्भर करता है। OS X में, आप openकमांड का उपयोग कर सकते हैं :

OPEN(1)                   BSD General Commands Manual                  OPEN(1)

NAME
     open -- open files and directories

SYNOPSIS
     open [-e] [-t] [-f] [-F] [-W] [-R] [-n] [-g] [-h] [-b bundle_identifier]
          [-a application] file ... [--args arg1 ...]

DESCRIPTION
     The open command opens a file (or a directory or URL), just as if you had
     double-clicked the file's icon. If no application name is specified, the
     default application as determined via LaunchServices is used to open the
     specified files.

     If the file is in the form of a URL, the file will be opened as a URL.

...

इसके अलावा, openकमांड पहली बार नेक्स्टस्टेप में दिखाई दी थी और ओएस एक्स द्वारा विरासत में मिली थी, इसलिए यह किसी और रूप में कम या ज्यादा ओपनस्टेप-आधारित प्लेटफॉर्म (जैसे आफ्टरस्टेप, लाइटस्टेप) पर उपलब्ध हो सकता है।
आयनोकॉस्ट ब्रिघम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.