मैं एक फ़ाइल ढूंढना चाहता हूं और फिर उसमें निर्देशिका दर्ज कर सकता हूं। मैंने कोशिश की find /media/storage -name "Fedora" | xargs cd
लेकिन निश्चित रूप से, मैं is not a directory
त्रुटि।
एक पंक्ति कमांड के साथ मैं इसकी मूल निर्देशिका कैसे दर्ज करूं?
shopt -s globstar
, आप कर सकते हैं cd /media/storage/**/Fedora
, लेकिन यह पहले मैच में ग्लोब का मूल्यांकन करना बंद नहीं करता है (इसलिए यह स्टीलड्राइवर के समाधान की तुलना में धीमा है। इंटरैक्टिव उपयोग के लिए, मैं सामान्य रूप से माउस के लिए क्या करूंगा और निर्देशिका नाम को कॉपी / पेस्ट करूंगा,) (और alt + बैकस्पेस आवश्यकतानुसार पीछे आने वाले पथ घटकों को हटाने के लिए आवश्यक था), लेकिन अगर आप ऐसा करते हैं तो मुझे लगता है कि शेल फ़ंक्शन बनाने लायक हो सकता है।
xargs cd
संभवतः काम नहीं कर सकता। cd
केवल शेल बिल्ड के रूप में काम कर सकता है, क्योंकि इसे शेल के संदर्भ को संशोधित करना होगा। ऐसा कोई तरीका नहीं xargs
है जिससे बच्चा प्रक्रिया कर सके। IDK अगर ऐसा है तो आप "कोर्स" से मतलब है, या यदि जिस मार्ग में find
प्रिंट होते हैं, उसमें रिक्त स्थान होते हैं, जो xargs द्वारा विभाजित होते हैं क्योंकि आपने उपयोग नहीं किया था -d \n
या कुछ भी नहीं। या find -exec {} \;
।
cd
उस तरह नहीं चल सकते । cd
में बनाया गया एक बैश है, यदि cd
एक अलग कमांड होता, तो यह बदल जाता (उसका अपना) डायर, और फिर छोड़ दिया (आपको शेल में वापस लौटा, जो पहले की तरह उसी स्थिति में है, डायर का कोई परिवर्तन नहीं)।