टर्मिनल में गैर-रिक्त निर्देशिका को कैसे हटाएं?


629

मैं निम्नलिखित निर्देशिका को कैसे हटाऊं?

मैंने लिखा:

rmdir lampp

यह त्रुटि सामने आती है:

rmdir: failed to remove `lampp': Directory not empty

क्या निर्देशिका में सभी फ़ाइलों को हटाने और निर्देशिका फ़ोल्डर को हटाने का आदेश है?


1
मैं उपरोक्त सभी विस्तृत आदेशों का उपयोग करके "न्यू फोल्डर" जैसी निर्देशिका को हटाने में असमर्थ हूं। यह दोहरा शब्द है। लेकिन मैं उस डायरेक्टरी को हटाना चाहता हूं। किसी भी सुझाव का स्वागत किया जाएगा। T.Divakara, बेंगलुरु, भारत

फ़ाइल नाम में इसका खाली स्थान, 'कोट्स'> rmdir 'न्यू फोल्डर' <का उपयोग करने का प्रयास करें </ b> फिर फ़ोल्डर डिस्क्रिप्टर करता है, या गैर-व्यवहार्य वर्णों के लिए एस्केप वर्णों का उपयोग करता है।
केन मोलेरप

2
बस कर rm -r lamppदेगा।
जॉन स्ट्रोड जू

जवाबों:


875

नीचे दिए गए आदेश का उपयोग करें:

rm -rf lampp

यह lamppनिर्देशिका में निहित सभी फ़ाइलों और फ़ोल्डरों को हटा देता है ।

मामले में उपयोगकर्ता के पास फ़ोल्डर को हटाने की अनुमति नहीं है:

sudoकमांड की शुरुआत में जोड़ें :

sudo rm -rf folderName

अन्यथा, आपके बिना sudoआपको अनुमति से इनकार कर दिया जाएगा। और -fनिर्देशिका को हटाते समय उपयोग न करने की कोशिश करना एक अच्छा अभ्यास है :

sudo rm -r folderName

नोट: यह मान लिया गया है कि आप पहले से ही उस फ़ोल्डर के समान स्तर पर हैं जिसे आप टर्मिनल में हटाना चाहते हैं, यदि नहीं:

sudo rm -r /path/to/folderName

FYI करें: यदि आप पत्र का उपयोग कर सकते -f, -r, -v:

  • -f = गैर-मौजूद फ़ाइलों को अनदेखा करने के लिए, कभी भी संकेत न दें
  • -r = निर्देशिका और उनकी सामग्री को पुनरावर्ती रूप से निकालने के लिए
  • -v = जो किया जा रहा है, उसे समझाने के लिए

69
मेरी विनम्र राय में, पहले प्रयास में "एफ" को जोड़ना कभी भी अच्छा अभ्यास नहीं है। इसका उद्देश्य कुछ चेतावनी संकेतों को अनदेखा करना है जो महत्वपूर्ण हो सकते हैं, खासकर यदि आपने गलती से इसे गलत निर्देशिका से चालू किया है। मेरी राय में पहले "एफ" के बिना प्रयास करना अच्छा है, केवल तभी जब आप बहुत सारे चेतावनी संकेतों का सामना कर रहे हैं और आपको यकीन है कि उन सभी को अनदेखा करना ठीक है, Ctrl + C इसे से बाहर निकालें और "के साथ कमांड दोहराएं" च "।
थोमसट्रेटर

@BKSpurgeon तब तक नहीं जब तक कि आप गलती से --no-preserve-rootभी टाइप न करें
मुरु

@thomasrutter ... सहमत। एक फ़ाइल "xxx" का मालिक: रूट और समूह: रूट को -f स्विच के साथ हटाया जा सकता है ; और बिना सूदो के । यह बिना -f के संदेश है : " rm: राइट-प्रोटेक्टेड रेगुलर फाइल '/home/william/.cache/netbeans/v08.01/tmp/xxx'? _" हटा दें। धीरे से चलना।
इच्छा

95
rm -R lampp

हालाँकि, आपको इस तरह के एक पुनरावर्ती आदेश के साथ सावधान रहने की आवश्यकता है, क्योंकि यह गलती से आपके द्वारा इच्छित उद्देश्य से बहुत अधिक हटाना आसान है।

एंटर को दबाने से पहले यह सुनिश्चित करना एक अच्छा विचार है कि आप किस डायरेक्टरी में हैं और क्या आपने सही तरीके से कमांड टाइप किया है।

सुरक्षित संस्करण

rm -R -i lampp

जोड़ना -iइसे थोड़ा सुरक्षित बनाता है, क्योंकि यह आपको हर विलोपन पर संकेत देगा। हालाँकि, यदि आप कई फ़ाइलों को हटा रहे हैं तो यह बहुत व्यावहारिक नहीं है। फिर भी, आप इसे पहले आज़मा सकते हैं।

विकल्प के बारे में ध्यान दें -f :

बहुत से लोग -fयह दावा करते हुए कि इसे कष्टप्रद संकेतों से छुटकारा दिलाता है, का उपयोग करके (इसमें -Rfया इसे मिलाकर -rf) सुझाव देते हैं । हालांकि, सामान्य मामलों में आप इसकी आवश्यकता नहीं है, और इसका उपयोग कुछ समस्या है कि आप शायद दबा देता है के बारे में जानना चाहते हैं। जब आप इसका उपयोग करते हैं, तो आपको चेतावनी नहीं दी जाएगी यदि आपके तर्क एक गैर-मौजूदा निर्देशिका या फ़ाइल (ओं) की आपूर्ति करते हैं: आरएम केवल चुपचाप कुछ भी हटाने में विफल रहेगा। एक सामान्य नियम के रूप में, बिना पहले प्रयास करें -f: यदि आपके तर्कों के साथ समस्याएं हैं, तो आप देखेंगे। यदि आपको बिना लिखित पहुँच के फ़ाइलों के बारे में बहुत अधिक संकेत मिलने लगे हैं, तो आप इसके साथ प्रयास कर सकते हैं-f। वैकल्पिक रूप से, एक उपयोगकर्ता (या sudo का उपयोग करने वाले सुपरसुअर) से कमांड को चलाएं, जिसमें उन फ़ाइलों और निर्देशिकाओं की पूर्ण अनुमति है, जिन्हें आप इन संकेतों को पहली जगह पर रोकने के लिए हटा रहे हैं।


4
नोट: लोअरकेस -rका भी उपयोग किया जा सकता है और यहां भी इसका प्रभाव है। मैं केवल अपरकेस का उपयोग करते हैं -R, क्योंकि यह इस तरह के रूप में अन्य आदेशों का उपयोग मैं के अनुरूप हो grepऔर chmod, जिनमें से कुछ को केवल बड़े प्रपत्र समर्थन करते हैं।
थोमसट्रेटर

यह मेरे लिए एंड्रॉइड पर adb (android डिबग ब्रिज) का उपयोग करके काम करता है। Rm -rf कोशिश कर रहा था, लेकिन यह काम नहीं किया। Rm -R का उपयोग करना था। धन्यवाद।
राडदेवस

यह एक अच्छा समाधान है, खासकर अगर बैश टर्मिनल का उपयोग करने के साथ अनुभवहीन। कमांड को छोटा किया जा सकता है rm -ir FOLDER
AlainD

24

CLI मोड के माध्यम से डायरेक्टरी को हटाने के बहुत सारे तरीके हैं। यह इस बात पर निर्भर करता है कि आप किस तरह से सहज हैं।

rm -rvf /path/to/directory  
  • -r = निर्देशिका और उनकी सामग्री को पुनरावर्ती रूप से निकालें
  • -v = समझाइए कि क्या किया जा रहा है
  • -f = नॉनवेज फाइलों को नजरअंदाज करें, कभी संकेत न दें

यदि आप लिनक्स में नए हैं, तो man rmअधिक विकल्प और अधिक सटीकता के लिए कमांड के मैन पेज ( ) का उपयोग करें ।


-2

मुझे आज उससे थोड़ी परेशानी हो रही थी, लेकिन मैंने इसे सूडो से काबू पा लिया।

कैविएट: नीचे दिए गए आदेश का उपयोग करने से पहले आप पूरी बात हटाना चाहते हैं।

$ sudo rm -R [Directory name]

मैंने आज सफलतापूर्वक यह किया है, और कई गैर-खाली निर्देशिकाओं को हटा दिया है जिनकी मैंने पुष्टि की है कि मैं नहीं चाहता / आवश्यकता नहीं है।

मैं 14.04 एलटीएस का उपयोग कर रहा हूं


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

-3

वैसे मैं व्यक्तिगत रूप से लेखन संरक्षित फ़ाइल / एस (.गित और उप निर्देशिका) युक्त निर्देशिका को हटाना चाहता था और अंततः महसूस किया कि इन फ़ाइलों को सफलतापूर्वक हटाने के लिए मुझे एक सुपर उपयोगकर्ता बनने की भी आवश्यकता है। मैंने जो किया था यह रहा:

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/

4
मुझे नहीं लगता कि आपको sudo suयहां की जरूरत है। बस के rmसाथ कमांड उपसर्ग करें sudo। सुरक्षा के लिए यह एक अच्छा अभ्यास है (सुडो के समर्थकों के अनुसार) जब आवश्यक न हो तो रूट प्रॉम्प्ट में नहीं रहना चाहिए।
thomasrutter

2
इसके अलावा, बहुत सुनिश्चित करें कि आप किस निर्देशिका में हैं sudo rm -r
टोनी मार्टिन

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