"Cd / myOtherFolder" के साथ USB ड्राइव के माध्यम से नेविगेट करना "ऐसी कोई निर्देशिका नहीं" त्रुटि का कारण बनता है


11

जब टर्मिनल में मेरे यूएसबी ड्राइव की फाइल सिस्टम को नेविगेट करते हैं, तो कुछ अजीब चीजें होती हैं जो मेरे रास्पबेरी पाई बी + पर नहीं हुआ करती थीं। मुझे यकीन नहीं है कि यह कैसे स्पष्ट करना है, इसलिए मैं सिर्फ दिखाऊंगा कि क्या है

  1. मैं कमांड लाइन खोलता हूं और अपने USB ड्राइव पर नेविगेट करता हूं cd /media/pi/MYUSB/

  2. मैं के cdसाथ USB ड्राइव का एक फ़ोल्डर दर्ज करने के लिए उपयोग करेंcd /myFolder/myOtherFolder

  3. मैं करने के लिए पीछे की ओर नेविगेट myFolderसाथcd ..

  4. मैं फिर से myOtherFolderसाथ नेविगेट करने की कोशिश करता हूं cd /myOtherFolder। हालाँकि, यह bash त्रुटि उठाता हैbash: cd: /myOtherFolder: no such file or directory

मुझे नहीं पता कि यह क्या हो रहा है या क्यों हो रहा है, लेकिन मैं त्रुटि संदेश के बिना ऐसा करने में सक्षम हुआ करता था। कभी-कभी मेरे पास पावर आउटेज होते हैं जो रास्पबेरी पाई को यूएसबी ड्राइव के साथ बंद करने का कारण बनते हैं, इसलिए मेरे पास "घोस्ट यूएसबी ड्राइव" हैं जैसे कि पावर और साइकल बंद होने पर भूत यूएसबी ड्राइव में वर्णित लोगों को पीछे छोड़ दिया जाता है

जवाबों:


32

आप अपने पथ नामों के लिए एक अग्रणी / डाल दिया! यह रूट डायरेक्टरी है, जिसका अर्थ है कि आप आगे जो लिखते हैं वह एक निरपेक्ष पथ है। आपका / myFolder / myOtherFolder आपके USB पर नहीं है अगर यह अंदर / मीडिया / pi / MYUSB / वैसे भी माउंट किया गया है।

लेकिन आप cd myOtherFolderउस मामले में उपयोग कर सकते हैं जो आप पूछ रहे हैं। मेरा सुझाव है कि लिनक्स (या यूनिक्स) फ़ाइल हैंडलिंग, फाइल सिस्टम और इस तरह के बारे में कुछ बुनियादी ट्यूटोरियल पढ़ने के लिए।


10

थोड़ा और विस्तार में जाने के लिए -

चाहे आप विंडोज या मैक ओएस एक्स पृष्ठभूमि से आते हैं, आपको अपनी हार्ड डिस्क (अधिक या कम) से स्वतंत्र स्थानों पर बाहरी ड्राइव करने के लिए उपयोग किया जाएगा।

यूनिक्स परंपरा का हिस्सा "जहां संभव हो विशेष मामलों से बचें"। उदाहरण के लिए यूनिक्स (और जीएनयू / लिनक्स) में, एक कीबोर्ड को एक फाइल के रूप में दर्शाया जाता है जिसे टेक्स्ट फाइल की तरह ही खोला और पढ़ा जा सकता है। तो एक सीरियल पोर्ट है (जिसे अच्छी तरह से लिखा जा सकता है)। एक रास्पबेरी पाई पर भी GPIO पिन को इस तरह नियंत्रित किया जा सकता है। /dev/zeroजब आप इसे पढ़ते हैं तो 0-बाइट्स का एक क्रम उत्पन्न करने वाली फाइल होती है । आदि।

यह एक शानदार विचार था क्योंकि इसमें सभी प्रकार के विशेष मामलों के बिना कार्यक्रमों का निर्माण करने की अनुमति थी।

वैसे भी, एक समान परंपरा में, पूरे सिस्टम के लिए एक निर्देशिका संरचना है, जो /(मूल निर्देशिका) से शुरू होती है । कोई विशेष मामले नहीं, कोई "ड्राइव अक्षर" नहीं। बस /

इस संरचना में कहीं भी ड्राइव को "संलग्न" किया जा सकता है mountकमांड का उपयोग करके (रास्पबेरी पाई स्वचालित रूप से ऐसा करने के लिए कॉन्फ़िगर किया गया है, लेकिन आप इसे मैन्युअल रूप से भी कर सकते हैं)।

हर फ़ाइल का पथ /किसी न किसी तरह से (उदाहरण के लिए /home/pi/test.txt) से नीचे उतरता है । इस वजह से, एक पथ /को "संपूर्ण" पथ माना जाता है, जो पूरे सिस्टम के रूट डायरेक्टरी से शुरू होता है। /शुरुआत के बिना , इसे "रिश्तेदार" पथ माना जाता है, अर्थात यह वर्तमान निर्देशिका से शुरू होता है।

दो अन्य तरकीबें - आप शायद जानते हैं कि शुरू होने वाला एक मार्ग ..माता-पिता की निर्देशिका को संदर्भित करता है। ~आपके होम डाइरेक्टरी से शुरू होने वाला एक पथ , उदाहरण के ~/test.txtलिए वही काम करता है, जो आपकी वर्तमान डायरेक्टरी का नहीं है।


3
पूर्णता के लिए, जिस पथ से शुरू होता .है वह वर्तमान निर्देशिका को संदर्भित करता है। यह तब महत्वपूर्ण है जब कोई व्यक्ति वर्तमान निर्देशिका में संग्रहीत कमांड चलाना चाहता है: बस टाइपिंग fooको $PATHखोजा जाएगा, और इसमें सूचीबद्ध पहली निर्देशिका जिसमें फ़ाइल नाम fooहै, निष्पादित की जाएगी। लेकिन टाइपिंग ./fooशेल को खोज के बजाय वर्तमान निर्देशिका में स्पष्ट रूप से देखने का निर्देश देता है $PATH
मोंटी हार्डर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.