मैं macOS पर `pwd` को` open` क्यों नहीं कर सकता?


12

यह macOS विशिष्ट है, लेकिन आस्क डिफरेंट कम्युनिटी में जाने के लिए बहुत अयोग्य लगता है ।

टर्मिनल में, मैं pwdपरिणाम को कॉपी कर सकता हूं , और परिणाम को टाइप openऔर पेस्ट कर सकता हूं और फाइंडर में फ़ोल्डर खुल जाएगा, लेकिन

pwd | open

के लिए सहायता दस्तावेज प्रिंट करता है open। पाइपिंग कार्य क्यों नहीं करता है, लेकिन चिपकाना क्या है?


केवल तभी काम करेगा जब ओपन एंटर प्रेस करने के बाद आपको डायरेक्टरी नाम टाइप करने की उम्मीद हो।
जैसन

9
इसके अलावा, यह (एक मैक उपयोगकर्ता नहीं) काम करना चाहिए: open .(वर्तमान निर्देशिका के लिए)
UniversallyUniqueID

@ भारद्वाजराजू open .काम करता है और सबसे आसान लगता है। Ty।
चक

जवाबों:


20

मेरे पास मैक नहीं है इसलिए मैं इसका परीक्षण नहीं कर सकता, लेकिन समाधान कुछ इस तरह होना चाहिए:

open "`pwd`"

सभी प्रोग्राम अपना इनपुट नहीं लेते हैं stdinजिससे पाइप काम करने के लिए आवश्यक होगा।


1
दोहरे उद्धरण अनावश्यक हैं।
tbodt

4
@tbodt: इसे आज़माएं /var/tbodt's files
जूली पेलेटियर

2
@tbodt: किसी भी शेल को कैसे पता चलेगा कि इस्तेमाल की गई जगह अलग-अलग तर्क या तर्क का हिस्सा है?
जूली पेलेटियर

2
@jamesdlin: bashविकास परियोजना पर शिकायत करें , लेकिन जब आप उस पर हों तो सभी पुराने गोले और सबसे नए गोले को भी सेंकना न भूलें। बात पूरी की!
जूली पेलेटियर

1
@ जूलीपैलेटियर मैं सिर्फ यह कह रहा हूं कि आप दावा करते हैं कि यह किसी भी शेल के लिए असंभव है, लेकिन मछली जैसे गोले बिल्कुल वैसे ही व्यवहार करते हैं, जैसे टोबॉड वर्णन करता है।
jamesdlin

28

openMacOS पर उपयोगिता मानक इनपुट से पढ़ा नहीं है, लेकिन कमांड लाइन से अपने तर्क ले।

वर्तमान कार्य निर्देशिका को खोलने के लिए, आपको कहना होगा

$ open "$( pwd )"

या

$ open "$PWD"

या केवल

$ open .

जैसा कि नीचे टिप्पणी में बताया गया है।

-fध्वज के साथ , openमानक इनपुट से पढ़ने के लिए बनाया जा सकता है, लेकिन केवल डिफ़ॉल्ट पाठ संपादक में जो कुछ भी प्राप्त होता है उसे खोलने के लिए।


1
यदि शेल (t) csh है, तो आप open $cwd:qइसके बजाय चाहते हैं। और open (pwd)/ open $PWDअगर यह हैfish
स्टीफन चेज़ेलस

1
@ स्टीफनचेज़ेलस का मानना ​​है कि डार्विन पर डिफ़ॉल्ट शेल है bash, लेकिन अन्य शेल के लिए भी समाधान देखना हमेशा अच्छा होता है।
Kusalananda

पूर्णता, साथ के लिए rc, es, akangaगोले: open `pwdयाopen `{pwd}
स्टीफन Chazelas

5
या आप सिंटेक्स का उपयोग कर सकते हैं- open .वर्तमान कामकाजी निर्देशिका या मूल निर्देशिका open .. या दो निर्देशिकाओं open ../..और इसके बाद के लिए।
fd0

@ स्टीफेनचैलेज: एक सीएचएस-संबंधित शेल में $cwd:qबेहतर क्यों होगा "$cwd"?
जी-मैन का कहना है

9

अन्य उत्तर पूरी तरह से सही हैं। यदि आप एक आसान आशुलिपि चाहते हैं , तो आप @ fd0 प्रस्तावित के रूप में , और बस उपयोग कर सकते हैं

open .

वर्तमान निर्देशिका को खोलने के लिए। वर्तमान निर्देशिका का नाम .(एक एकल डॉट) यूनिक्स में, मूल निर्देशिका ..(दो डॉट्स) है।


9
pwd | xargs open

xargs अपने पहले तर्क की दलीलों में अपने standart इनपुट को निकालता है।


2
केवल तभी यदि वर्तमान कार्य निर्देशिका पथ में रिक्त या newline या एकल उद्धरण या दोहरे उद्धरण या बैकस्लैश शामिल नहीं हैं।
स्टीफन चेजालस

pwd | xargs -d '\n' open
बेल्का

0

आप -fपाठ संपादक में पिछली कमांड की सामग्री को खोलने के लिए एक पाइपलाइन का उपयोग कर सकते हैं । यह सिर्फ पाठ संपादकों के लिए लागू होता है। अन्य एप्लिकेशन के लिए आपको अन्य प्रश्नों में सुझाव का उपयोग करना होगा।

उदाहरण के लिए:

ls | open -f

यह lsआउटपुट सामग्री के साथ आपके डिफ़ॉल्ट टेक्स्ट एडिटर को खोलेगा ।

आप पाठ संपादक का उपयोग करने के लिए निर्दिष्ट कर सकते हैं -a:

ls | open -a 'Atom' -f

यह Atom को lsआउटपुट कंटेंट के साथ खोलेगा ।

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