'फाइंड' कमांड के साथ ओपन फाइल मिली


12

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

find . -name *.xyz

यह वह फ़ाइल लौटाएगा जिसकी मुझे तलाश है। अब मैं बिना नाम लिखे, इसे अपने आप कैसे खोलूं?

find . -name *xyz | open

यह काम नहीं करता है। यह कहता है कि उसे खुली कमांड नहीं मिली।


3
यह किस तरह की फाइल है? यदि इसकी निष्पादन योग्य फ़ाइल नहीं है, तो आप किस प्रोग्राम के साथ फ़ाइल खोलना चाहते हैं? ओह क्या विंडोज हमारी जनसंख्या = / करने के लिए किया गया है
chown

यह संभवतः
सुपरयुसर

1
मैं एक मैक पर हूँ विंडोज नहीं ... और मैं डिफ़ॉल्ट प्रोग्राम के साथ फाइल खोलना चाहता हूं।

2
खोजो। -नाम * xyz | xargs खुला और पाते हैं। -नाम * .xyz -exec खुला {} \; दोनों ने काम किया। धन्यवाद।

मुझे खुशी है कि आपको एक समाधान मिला। उस समाधान को चिह्नित करना न भूलें जो आपके लिए 'सर्वश्रेष्ठ' काम करता है। अन्य लोग आपके 'स्वीकृति' अनुपात को देखेंगे और भविष्य के प्रश्न पूछते समय यह एक लंबा रास्ता तय करेंगे। कम स्वीकृति अनुपात वाले उपयोगकर्ता अक्सर अपने प्रश्नों को अनदेखा कर जाते हैं। =)
matchew

जवाबों:


11

@retracile सही है। आपको इसे 'कुछ' के साथ खोलने की जरूरत है। हालाँकि, मैं xargs पर निष्पादन का उपयोग करना पसंद करता हूँ।

find . -name '*.xyz' -exec cat {} \;

यह वापस आ जाएगा cat fileFound.xyz; cat fileFound2.xyx;आदि .. हालांकि, आप केवल एक फ़ाइल खोजने की उम्मीद कर रहे हैं।

ध्यान दें कि बदलते \;को +वापसी होगी cat fileFound.xyz fileFound2.xyzमामले के आधार पर बाद में हो सकता है पसंदीदा विकल्प।

इस बारे में अधिक जानकारी के लिए मैं आपको इस प्रश्न पर निर्देशित करूंगा


6

जिस कमांड को आप खोज रहे हैं उसे कहा जाता है xdg-open

इसके साथ अपने आदेश का प्रयास करें:

xdg-open "$(find . -name '*xyz' | head -n1)"

6

आपको यह जानना होगा कि आप फ़ाइल खोलने के लिए किस प्रोग्राम का उपयोग करना चाहते हैं। यदि यह एक छवि है, तो आप gwenview या कुछ का उपयोग कर सकते हैं।

इनपुट लेना और इसे तर्कों में बदल देना xargs के साथ किया जाता है। और आप उस वाइल्डकार्ड से बचना चाहेंगे ...

find . -name \*xyz | xargs gwenview

और फ़ाइलनामों में रिक्त स्थान को संभालने के लिए ...।

find . -name \*xyz | xargs -d"\n" gwenview

2

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

$(find . -name *.xyz)

0

यदि आप findविम के एकल उदाहरण में अलग-अलग टैब में मिली सभी फाइलों को खोलना चाहते हैं , तो आप ऐसा कर सकते हैं:

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