निर्देशिका से प्रतीकात्मक लिंक कैसे निकालें?


100

मैंने निम्नलिखित कम्मंड के साथ एक प्रतीकात्मक लिंक बनाया:

ln -s ../test5

मैं इसे अभी निकालना चाहता हूं लेकिन मेरी rm विफल है:

$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory

$ls -l
 0 lrwxrwxrwx  1 peter peter    8 Jul 20 15:30 test5 -> ../test5/

मैं अपने प्रतीकात्मक लिंक को कैसे हटा सकता हूं? (Ubuntu 8.10, बैश)


4
टीआईपी: rm -r link/लक्ष्य पर सामग्री को हटाता है
गायन वीरकुट्टी

जवाबों:


121

ट्रेलिंग स्लैश निकालें:

शीघ्र के साथ:

$ rm test5

बिना संकेत के:

$ rm -f test5


यह कहता है permission denied
1.21 गीगावाट

1
बिना स्लैश के पीछे। तो test5/गलत है।
pylover

20

प्रयास करें rm test5
(प्रशिक्षण स्लैश के बिना)।

स्लैश इंगित करता है कि 'test5' एक नाटकीय है, जबकि यह वास्तव में एक निर्देशिका से लिंक करने वाली फ़ाइल है ।


14

आप पीछे चल रहे स्लैश को हटा सकते हैं:

$ rm test5

यह फ़ाइल (यानी सिमलिंक) को हटा देगा।

वैकल्पिक रूप से आप अनलिंक का उपयोग कर सकते हैं:

$ unlink test5

फिर से आप अनुगामी स्लैश को छोड़ देना चाहिए क्योंकि आप सिरिंक को अनलिंक करने का प्रयास कर रहे हैं निर्देशिका नहीं।


0

कभी-कभी यदि आप उस लिंक को नाम देने के लिए स्वत: पूर्ण का उपयोग करते हैं जिसे आप हटाना चाहते हैं तो आप एक अनुगामी स्लैश नहीं देख सकते हैं, लेकिन यह 'आधा वहाँ' है और यह अदृश्य स्लैश उस लिंक को हटाने का प्रयास करते समय अभी भी डिलीट त्रुटि देता है।

तो उस मामले में चरित्र द्वारा चरित्र बाहर टाइप करें लिंक को "test5" के रूप में उदाहरण के लिए हटा दिया जाए। rm test5


1
अदृश्य स्लेश के बारे में कभी नहीं सुना। यह क्या खोल है?
कामिल मैकियोरोस्की

मुझे लगता है कि यह संभवतः वर्णवृद्धि + कर्सर द्वारा छिपे हुए चरित्र का संदर्भ है?
बर्टिएब

0

ओपी में मुद्दा अनुगामी है /, इसलिए test5/एक त्रुटि फेंकता है लेकिन test5काम करता है।

मैं unlinkइसके बजाय उपयोग करना पसंद rmकरता हूं क्योंकि मेरा इरादा स्पष्ट है और लिंक के बजाय वास्तविक निर्देशिका को गलती से हटाने का कोई मौका नहीं है। सुनिश्चित करें कि /निर्देशिका नाम के बाद कोई अनुगामी नहीं है , जैसे:

unlink test5

-1

मुझे लगता है कि मूर्खतापूर्ण पूछ रहे हैं, लेकिन क्या आपने कोशिश की है rm -r? चूंकि यह एक प्रतीकात्मक लिंक है इसलिए इसे लक्ष्य को नहीं हटाना चाहिए।

संपादित करें: बस कोशिश की, यह सही है

संपादित करें 2: rmdir कहते हैं कि यह खाली निर्देशिकाओं को हटाता है। मुझे लगता है कि क्योंकि यह एक लिंक है जो इसकी फ़ाइल गुणों पर निर्देशिका बिट की जाँच की थी, लेकिन क्योंकि rmdir को संदेह नहीं है कि मामला होने के नाते यह त्रुटियों को फैलाता है। बस rm -r का उपयोग करें


2
यह मुझे निर्देशिका में फ़ाइलों को हटाने के लिए कहेगा, यही वह नहीं है जो मैं चाहता हूं, मैं केवल लिंक को हटाना चाहता हूं
पीटर स्मिट

पूछ रहा था क्योंकि इंटरएक्टिव मेरी .profile में परिभाषित किया गया था। Rm -r पर प्रतिक्रिया जोड़ी। यह अभी भी काम नहीं करता है।
पीटर स्मिट

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