"एलएस" छिटपुट रूप से केवल आउटपुट क्यों होता है " किसी बाहरी ड्राइव की रूट डायरेक्टरी में?


9

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

$ ls
.

यदि मैं ls -laउन समयों में से एक पर कोशिश करता हूं , तो मुझे यह मिलता है:

$ ls -la
ls: .: Invalid argument

अगर मैं lsकई बार बैक-टू-बैक दौड़ता हूं , तो यह सामान्य आउटपुट या असामान्य रूप से यादृच्छिक रूप से वापसी करने लगता है।

lsअन्य निर्देशिकाओं में सामान्य रूप से काम करता प्रतीत होता है। ls $drivenameयहां तक ​​कि मूल निर्देशिका से ठीक काम करने के लिए प्रतीत होता है, और ls ..लगता है कि एक बच्चे की निर्देशिका से ठीक काम करने के लिए। (हालांकि, मैं 100% सुनिश्चित नहीं हो सकता हूं कि "सामान्य रूप से काम करें" क्योंकि व्यवहार को शुरू करने के लिए अनिश्चित है।) मैंने दो अन्य बाहरी यूएसबी ड्राइव की कोशिश की और समान व्यवहार मिला।

यहाँ क्या चल रहा है? मैं मैक ओएस एक्स 10.11.3 पर हूं।

संपादित करें: अच्छा विचार है, लेकिन मैं एक उपनाम का उपयोग नहीं करता हूं, और /bin/lsएक ही परिणाम देता हूं ।


2
यह असामान्य व्यवहार एक खराबी वाले उपनाम का परिणाम हो सकता है। यदि आप उपयोग करते हैं तो क्या होता है /bin/ls?
डोपघोटी

अन्य निर्देशिकाओं में ls ठीक काम करता है?
लियाम

/bin/lsकभी-कभी आउटपुट देने के समान परिणाम देता है .lsअन्य निर्देशिकाओं में सामान्य रूप से काम करता प्रतीत होता है। ls NO\ NAMEयहां तक ​​कि मूल निर्देशिका से ठीक काम करने के लिए प्रतीत होता है, और ls ..लगता है कि एक बच्चे की निर्देशिका से ठीक काम करने के लिए। (हालांकि मैं 100% यकीन नहीं कर सकता हूं कि "सामान्य रूप से काम करते हैं" क्योंकि व्यवहार शुरू करने के लिए अनिश्चित है।)
leekaiinthesky

आप उन फ्लैश ड्राइव में किस फाइल सिस्टम का उपयोग कर रहे हैं? शायद विंडोज़-आधारित फाइलसिस्टम से प्राप्त कुछ विसंगति है
RSFalcon7

आप किस संस्करण का lsउपयोग कर रहे हैं? /bin/ls --versionकाम करना चाहिए
RSFalcon7

जवाबों:


6

यह OSX के हाल के संस्करणों पर FAT32 के लिए फाइलसिस्टम ड्राइवर में बग हो सकता है। यह केवल तब होता है जब माउंटेड ड्राइव के रूट में वर्किंग डायरेक्टरी होती है। यदि यह उपनिर्देशिका में है या कहीं और सिस्टम पर काम करने लगता है।

इस धागे में कुछ दिलचस्प चर्चा है जिसमें सिस्टम के निशान भी शामिल हैं। https://github.com/robbyrussell/oh-my-zsh/issues/4161


2

काम: (शायद पूछने वाले की सराहना करेंगे, भले ही वे विशेष रूप से इसके लिए नहीं पूछें)

वर्तमान निर्देशिका को छोड़कर लगभग किसी भी तरह से देखें .। उदाहरण:

cdएक उपनिर्देशिका के लिए, और फिर lsमूल निर्देशिका पर चलाएँ । अर्थात्, कुछ इस तरह दर्ज करें:

mkdir S; cd S ; /bin/ls -al ..

या इसके द्वारा इसका उल्लेख पूर्ण पथनाम है। उदाहरण:

ls /Volumes/microSD007

मेरे लिए, इनमें से कोई भी वर्कअराउंड काम करता है (अर्थात, वे अपेक्षित आउटपुट में परिणाम lsदेते हैं ) जब मुझे ओपी की रिपोर्ट में वही गलत आउटपुट मिलता है। (और मेरे लिए, lsअजीब तरह से काम करने पर dmesg में कोई आउटपुट नहीं है ।)

मैं टर्मिनल में 10.12.6 को उसी खराबी को देख रहा हूं। में एक ही cshऔर sh, vt100 करने के लिए शब्द की स्थापना के बाद भी। यह वर्कअराउंड उन गोले में भी काम करता है।

और मैं मानता हूं कि इसमें एक बग है stat64, जैसा कि zshमुद्दा थ्रेड नील में हमें इंगित करता है। (मैंने सोचा था कि मुद्दा त्रुटिपूर्ण और / या नकली फ्लैश मेमोरी के कारण था, और फिर भी आश्चर्य होता है कि क्या यह कभी-कभी एक कारक है।)

मैंने देखा कि यह बग भी प्रभावित करता है:

  • Emacs 'dired मोड, क्योंकि यह कॉल करता है ls, और
  • ls जब इसका उपयोग Emacs के शेल मोड में किया जाता है।

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

1
मैं बाड़ पर हूँ; आम तौर पर सवालों के जवाब देने की आवश्यकता होती है, न केवल अधिक जानकारी प्रदान करना, बल्कि समस्या के आसपास काम करना संभवतः इसका एक हिस्सा है जो पूछने वाले की तलाश में था, भले ही वे विशेष रूप से इसका उल्लेख न करें। अधिकांश संपादन अनावश्यक की तरह लगते हैं, और कम से कम एक निश्चित रूप से स्वरूपण को गड़बड़ कर देता है, इसलिए मैंने उन्हें वापस रोल किया। मुझे यकीन नहीं है कि पोस्ट कभी डाउनवोट थी, लेकिन यह वर्तमान में 2 अपवोट्स और 0 डाउनवोट्स पर है
माइकल मिरोज़ेक

0

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

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

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