एंड्रॉयड

लिनक्स में निर्देशिका कैसे हटाएं (हटाएँ)

rmdir (निकालें निर्देशिका) आदेश खाली निर्देशिका / फ़ोल्डर में linux को हटाने के लिए

rmdir (निकालें निर्देशिका) आदेश खाली निर्देशिका / फ़ोल्डर में linux को हटाने के लिए

विषयसूची:

Anonim

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

, हम बताएंगे कि rmdir , rm और कमांड्स का उपयोग करके लिनक्स में निर्देशिकाओं को कैसे हटाएं।

शुरू करने से पहले

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

कमांड लाइन से फ़ाइलों या निर्देशिकाओं को हटाते समय अतिरिक्त सावधानी बरतें, क्योंकि एक बार निर्देशिका को हटाए जाने के बाद कमांड का उपयोग करके समझाया जाता है कि इसे पूरी तरह से पुनर्प्राप्त नहीं किया जा सकता है।

अधिकांश लिनक्स फाइल सिस्टम पर, निर्देशिका को हटाने के लिए निर्देशिका और उसकी सामग्री पर लिखने की अनुमति की आवश्यकता होती है। अन्यथा आपको "ऑपरेशन की अनुमति नहीं है" त्रुटि मिलेगी।

उनमें एक स्थान के साथ निर्देशिका नाम एक बैकस्लैश ( / ) के साथ बच जाना चाहिए।

rmdir साथ निर्देशिकाएँ निकालना

rmdir खाली निर्देशिका को हटाने के लिए एक कमांड-लाइन उपयोगिता है। यह तब उपयोगी होता है जब आप किसी निर्देशिका को केवल तभी हटाना चाहते हैं जब वह खाली हो, बिना यह जाँचे कि निर्देशिका खाली है या नहीं।

rmdir साथ एक निर्देशिका को हटाने के लिए, जिस निर्देशिका को आप हटाना चाहते हैं उसका नाम टाइप करें। उदाहरण के लिए, dir1 नामक निर्देशिका को हटाने के लिए आप टाइप करेंगे:

rmdir dir1

यदि निर्देशिका खाली नहीं है, तो आपको निम्नलिखित त्रुटि मिलेगी:

rmdir: failed to remove 'dir1': No such file or directory

इस मामले में, आपको इसे हटाने से पहले rm कमांड का उपयोग करना होगा या निर्देशिका सामग्री को मैन्युअल रूप से निकालना होगा।

rm साथ निर्देशिकाएँ निकालना

rm फ़ाइलों और निर्देशिकाओं को हटाने के लिए एक कमांड-लाइन उपयोगिता है। rmdir के विपरीत rm कमांड खाली और गैर-रिक्त दोनों डायरेक्टरी को हटा सकता है।

डिफ़ॉल्ट रूप से, जब बिना किसी विकल्प के rm उपयोग किया जाता है तो वह निर्देशिकाओं को नहीं हटाता है। खाली निर्देशिका को हटाने के लिए, -d ( --dir ) विकल्प का उपयोग करें और गैर-रिक्त निर्देशिका को हटाने के लिए और इसकी सभी सामग्री -r ( --recursive या -R ) विकल्प का उपयोग करें।

उदाहरण के लिए dir1 नाम की एक निर्देशिका को हटाने के लिए जिसकी सभी सामग्री आप टाइप करेंगे:

rm -r dir1

यदि कोई निर्देशिका या निर्देशिका के भीतर कोई फ़ाइल राइट-प्रोटेक्टेड है, तो आपको विलोपन की पुष्टि करने के लिए प्रेरित किया जाएगा। संकेत दिए बिना किसी निर्देशिका को हटाने के लिए -f विकल्प का उपयोग करें:

rm -rf dir1

एक साथ कई निर्देशिकाओं को हटाने के लिए, rm कमांड का उपयोग करें, जिसके द्वारा निर्देशिका के नामों को अंतरिक्ष से अलग किया जाता है। नीचे दी गई कमांड प्रत्येक सूचीबद्ध निर्देशिका और उनकी सामग्री को हटा देगी:

rm -r dir1 dir2 dir3

-i विकल्प आपको प्रत्येक उपनिर्देशिका और फ़ाइल को हटाने की पुष्टि करने के लिए rm को बताता है। यदि निर्देशिका में बहुत सारी फाइलें हैं, तो यह थोड़ा कष्टप्रद हो सकता है, इसलिए आप -I विकल्प का उपयोग करने पर विचार कर सकते हैं जो हटाने के साथ आगे बढ़ने से पहले केवल एक बार आपको संकेत देगा।

rm -rI dir1

डायरेक्ट्री टाइप y और हिट Enter को हटाने के लिए।

rm: remove 1 argument recursively? y

आप कई निर्देशिकाओं के मिलान और हटाने के लिए नियमित विस्तारक का भी उपयोग कर सकते हैं। उदाहरण के लिए, _bak साथ समाप्त होने वाली वर्तमान निर्देशिका में सभी प्रथम स्तर की निर्देशिकाओं को निकालने के लिए, आप निम्नलिखित कमांड का उपयोग करेंगे:

rm -r *_bak

निर्देशिकाओं को हटाते समय नियमित विस्तार का उपयोग करना जोखिम भरा हो सकता है। यह अनुशंसा की जाती है कि पहले निर्देशिकाओं को ls कमांड के साथ सूचीबद्ध करें ताकि आप देख सकें कि rm कमांड चलाने से पहले कौन-सी निर्देशिकाएँ हटा दी जाएँगी।

find साथ निर्देशिकाएँ find

find एक कमांड-लाइन उपयोगिता है जो आपको दी गई अभिव्यक्ति के आधार पर फ़ाइलों और निर्देशिकाओं की खोज करने और प्रत्येक मिलान की गई फ़ाइल या निर्देशिका पर एक क्रिया करने की अनुमति देती है।

सबसे आम परिदृश्य पैटर्न के आधार पर निर्देशिकाओं को हटाने के लिए find कमांड का उपयोग करना है। उदाहरण के लिए, आपके द्वारा चलाए जा रहे वर्तमान कार्य निर्देशिका में _cache साथ समाप्त होने वाली सभी निर्देशिकाओं को हटाने के लिए:

find. -type d -name '*_cache' -exec rm -r {} +

चलो ऊपर दिए गए आदेश का विश्लेषण करें:

  • /dir - वर्तमान कार्यशील निर्देशिका ( . ) में पुनरावर्ती खोज करें। -type d - निर्देशिकाओं के लिए खोज को प्रतिबंधित करता है। -name '*_cache' - केवल निर्देशिकाएं जो _cache -exec साथ समाप्त होती हैं - वैकल्पिक तर्कों के साथ एक बाहरी कमांड निष्पादित करता है, इस मामले में rm -r {} + - rm कमांड के अंत में मिली फाइलों को जोड़ देता है।

सभी खाली निर्देशिकाओं को हटाना

एक निर्देशिका ट्री में सभी खाली निर्देशिकाओं को हटाने के लिए जिसका आप उपयोग करेंगे:

find /dir -type d -empty -delete

उपयोग किए गए विकल्पों के लिए यहां एक स्पष्टीकरण दिया गया है:

  • /dir - /dir निर्देशिका में पुनरावर्ती खोज। -type d - निर्देशिकाओं के लिए खोज को प्रतिबंधित करता है। -empty - केवल खाली निर्देशिकाओं के लिए खोज को प्रतिबंधित करता है। -delete - सबट्री में सभी खाली निर्देशिकाओं को हटाता है। -delete केवल खाली निर्देशिकाओं को हटा सकता है।

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

/ बिन / आरएम: तर्क सूची बहुत लंबी है

यह त्रुटि संदेश तब दिखाई देता है जब आप rm कमांड का उपयोग एक निर्देशिका को हटाने के लिए करते हैं जिसमें बड़ी संख्या में फाइलें होती हैं। ऐसा इसलिए होता है क्योंकि कमांड लाइन तर्क के आकार पर सिस्टम की सीमा से बड़ी फ़ाइलों की संख्या होती है।

इस समस्या के कई अलग-अलग समाधान हैं। उदाहरण के लिए, आप एक-एक करके उप-निर्देशिकाओं को हटाने के लिए निर्देशिका और मैन्युअल रूप से या लूप का उपयोग कर सकते हैं।

सबसे आसान उपाय यह है कि डायरेक्टरी के भीतर मौजूद सभी फाइलों को find कमांड से डिलीट करें और फिर डायरेक्ट्री को डिलीट करें:

find /dir -type f -delete && rm -r /dir

निष्कर्ष

rm साथ और आप विभिन्न मानदंडों के आधार पर निर्देशिकाओं को तेजी से और कुशल तरीके से हटा सकते हैं।

निर्देशिकाओं को हटाना एक सरल और आसान प्रक्रिया है लेकिन आपको महत्वपूर्ण डेटा को नहीं हटाने के लिए सतर्क रहना चाहिए।

rm rddir टर्मिनल खोजें