स्पर्श: स्पर्श नहीं कर सकता `फू ': ऐसी कोई फ़ाइल या निर्देशिका नहीं


21

इस त्रुटि संदेश के साथ स्पर्श विफल हो सकता है?

touch: cannot touch `foo': No such file or directory

ध्यान दें कि गलत अनुमतियों के कारण त्रुटि अलग दिखती है:

touch: cannot touch `foo': Permission denied

जवाबों:


21

निम्नलिखित अनुक्रम इस त्रुटि संदेश का कारण बनता है:

$ mkdir foo
$ cd foo

दूसरे टर्मिनल में:

$ rm -r foo

पिछले टर्मिनल में:

$ touch x
touch: cannot touch `x': No such file or directory

बेशक, अन्य घटनाओं के परिणामस्वरूप एक प्रक्रिया की वर्तमान कार्यशील निर्देशिका (CWD) को अमान्य कर दिया जाता है जो वहां एक फ़ाइल बनाने की कोशिश करता है जो इस त्रुटि संदेश को भी प्राप्त करता है।


2
मेरे मामले में, यह एक गलतफहमी GlusterFS माउंट बिंदु के कारण हो रहा था, लेकिन मैं सामान्य मामले के बारे में उत्सुक था कि ऐसा होने का कारण होगा। क्या इस प्रकार का प्रश्न वास्तव में एक कक्षा में एक होमवर्क समस्या होगी?
लोरिन होचस्टीन

3
सामान्य मामला मौजूदा निर्देशिका है जो मौजूदा नहीं है। इसके अलावा इसे मैक्सक्लेपज़िग के उदाहरण के रूप में हटा दिया गया है, यह केवल दुर्व्यवहार करने वाले फाइलसिस्टम (आपके मामले) जैसी अजीब परिस्थितियों में हो सकता है, या शायद एक सुरक्षा तंत्र जैसे SELinux ने निर्देशिका को अदृश्य बना दिया है (मुझे नहीं लगता कि SELinux वास्तव में उत्पादन कर सकता है) यह प्रभाव)।
गाइल्स का SO- बुराई पर रोक '19

@ रोलिन: ठीक है, विश्वविद्यालय में एक यूनिक्स परिचय पाठ्यक्रम में, हमने होमवर्क असाइनमेंट के भाग के रूप में इस तरह के प्रश्न पूछे थे (क्योंकि उदाहरण के लिए एनएफएस समस्याएं समान त्रुटि संदेशों में प्रकट हो सकती हैं)। बस जिज्ञासा से पूछा है ...
maxschlepzig

3
मूल उत्तर में, किसी अन्य टर्मिनल की आवश्यकता नहीं है: rmdir ../fooउसी टर्मिनल में काम करना चाहिए। फाइलसिस्टम के दुर्व्यवहार के बिना एक और संभावना ln -s directory-that-doesnt-exist/foo foo; touch foo:।
3-16

मुझे लगता है कि आपको "एचएम, होमवर्क प्रश्न" को संपादित करना चाहिए? जवाब से बाहर .... यह ईमानदारी से बहुत आक्रामक है। मैं इस पृष्ठ पर हूं क्योंकि यह वास्तव में मेरे कंप्यूटर पर हुआ था। लेकिन यह जवाब बिल्कुल हल नहीं करता है। यह एक एनएफएस समस्या थी जो रिबूटिंग को तय करती है, लेकिन मैं अंतर्निहित कारण चाहता हूं।
कोडेटाकु

4

मेरे लिए यह एक सिम्लिंक को लिखने की कोशिश कर रहा था जो उस फ़ाइल की ओर इशारा कर रहा था जो अब नहीं थी:

$ ln -s ~/doomed/file ~/mysymlink
$ rm ~/doomed/file
$ touch ~/mysymlink
$ touch: cannot touch `mysymlink': No such file or directory

वह यह था!! अब गूंगा लग रहा है! निर्देशिका में बस एक "ls -la" कर रहा था, फ़ाइल को तुरंत दिखाया जाना चाहिए था। यह "resolv.conf" था, जिसने दुर्घटनाग्रस्त अपडेट के कारण एक जगह की ओर इशारा किया था ..
stolsvik

1

संदेश को ट्रिगर करने का एक और (सरल) तरीका:

$ mkdir foo
$ touch foo/bar/baz.txt
touch: cannot touch 'foo/bar/baz.txt': No such file or directory

मूल रूप से एक गैर-मौजूद फ़ोल्डर में एक फ़ाइल बनाने की कोशिश कर रहा है।


0

शायद यह भविष्य में किसी की मदद करेगा:

मुझे यह वही मुद्दा मिला जब मैंने एकमात्र फ़ाइल को हटा दिया जो मेरे फ़ोल्डर में मौजूद है git rm। इस प्रकार git ने उस फ़ोल्डर को हटा दिया जिसमें मैं था, और फ़ाइल बनाने का कोई भी प्रयास इस त्रुटि को ट्रिगर करता है क्योंकि फ़ोल्डर अब नहीं है। इसलिए मुझे मैन्युअल रूप से फ़ोल्डर को फिर से बनाना पड़ा, इसमें जाना और touchकमांड को सफलतापूर्वक चलाना ।

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