लिनक्स टर्मिनल में फ़ाइलों और निर्देशिकाओं को कैसे हटाएं? आरएमडीआईआर (आरडी) कमांड - विंडोज फ़ाइल सिस्टम निर्देशिका को हटाएं कंसोल से लिनक्स में एक फ़ोल्डर हटाएं


RM और rmdir कमांड Linux, macOS और अन्य यूनिक्स जैसे ऑपरेटिंग सिस्टम पर फ़ाइलों और निर्देशिकाओं को हटाते हैं। वे विंडोज़ और डॉस में डेल और डेलट्री कमांड के समान हैं। ये कमांड बहुत शक्तिशाली हैं और इनमें काफी कुछ विकल्प हैं।

यह ध्यान रखना महत्वपूर्ण है कि rm और rmdir का उपयोग करके हटाई गई फ़ाइलों और निर्देशिकाओं को रीसायकल बिन में नहीं ले जाया जाता है। वे तुरंत आपके कंप्यूटर से हटा दिए जाते हैं. यदि आपने इन आदेशों का उपयोग करके गलती से फ़ाइलें हटा दी हैं, तो आप उन्हें केवल बैकअप से पुनर्स्थापित कर पाएंगे।

आरएम का उपयोग करके फ़ाइलें कैसे हटाएं

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

आरएम फ़ाइल_1.txt

यदि फ़ाइल वर्तमान कार्यशील निर्देशिका में नहीं है, तो फ़ाइल स्थान का पथ प्रदान करें।

Rm ./path/to/the/file/file_1.txt

आप rm में एक से अधिक फ़ाइल नाम पास कर सकते हैं। यह सभी निर्दिष्ट फ़ाइलें हटा देता है.

आरएम फ़ाइल_2.txt फ़ाइल_3.txt

वाइल्डकार्ड का उपयोग हटाई जाने वाली फ़ाइलों के समूहों का चयन करने के लिए किया जा सकता है। संकेत * एकाधिक वर्णों और चरित्र का प्रतिनिधित्व करता है ? एक वर्ण का प्रतिनिधित्व करता है. यह कमांड वर्तमान कार्यशील निर्देशिका में सभी पीएनजी छवि फ़ाइलों को हटा देगा।

आरएम* .पीएनजी

यह आदेश समान वर्ण एक्सटेंशन वाली सभी फ़ाइलों को हटा देगा। उदाहरण के लिए, यह File.1 और File.2 को हटा देगा, लेकिन File.12 को नहीं।

आरएम*.?

यदि फ़ाइल राइट-प्रोटेक्टेड है, तो आपको फ़ाइल को हटाने के लिए प्रेरित किया जाएगा। आपको इसके साथ उत्तर देना होगा या एनऔर "एंटर" दबाएँ।

वाइल्डकार्ड के साथ rm का उपयोग करने के जोखिम को कम करने के लिए, विकल्प का उपयोग करें -मैं(इंटरैक्टिव)। ऐसा करने के लिए, आपको प्रत्येक फ़ाइल को हटाने की पुष्टि करनी होगी।

आरएम -आई* .डेट

विकल्प -एफ(बल) इंटरैक्टिव के विपरीत है। भले ही फ़ाइलें राइट-प्रोटेक्टेड हों, यह पुष्टि नहीं मांगता।

आरएम-एफ फ़ाइल नाम

आरएम का उपयोग करके निर्देशिकाएं कैसे हटाएं

किसी खाली निर्देशिका को हटाने के लिए, विकल्प का उपयोग करें -डी(निर्देशिका)। आप निर्देशिका नामों में वाइल्डकार्ड (* और ?) का उपयोग उसी तरह कर सकते हैं जैसे आप फ़ाइल नामों में कर सकते हैं।

आरएम-डी निर्देशिका

एक से अधिक निर्देशिका नाम प्रदान करने से सभी निर्दिष्ट खाली निर्देशिकाएँ हट जाती हैं।

आरएम -डी निर्देशिका1 निर्देशिका2 /पथ/से/निर्देशिका3

गैर-रिक्त निर्देशिकाओं को हटाने के लिए, विकल्प का उपयोग करें -आर(पुनरावर्ती)। स्पष्ट होने के लिए, यह निर्देशिकाओं और उनमें मौजूद सभी फ़ाइलों और उपनिर्देशिकाओं को हटा देता है।

आरएम -आर निर्देशिका1 निर्देशिका2 निर्देशिका3

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

आरएम-आरएफ निर्देशिका

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

यदि आप उबंटू या किसी अन्य डेबियन-आधारित वितरण का उपयोग कर रहे हैं तो इस पैकेज को अपने सिस्टम पर स्थापित करने के लिए apt-get का उपयोग करें। अन्य Linux वितरणों पर, अपने Linux वितरण के पैकेज प्रबंधन टूल का उपयोग करें।

सुडो एप्ट-गेट इंस्टाल ट्री

ट्री कमांड चलाने से निर्देशिका संरचना और उस निर्देशिका के अंतर्गत फ़ाइलों का समझने में आसान आरेख तैयार होता है जहां से इसे चलाया जाता है।

आप ट्री कमांड के लिए पथ भी निर्दिष्ट कर सकते हैं ताकि यह फ़ाइल सिस्टम पर किसी अन्य निर्देशिका से ट्री को चला सके।

वृक्ष पथ/से/निर्देशिका

आरएम कमांड में --one-file-system , --no-preserve-root , --preserve-root विकल्प भी हैं, लेकिन ये केवल उन्नत उपयोगकर्ताओं के लिए अनुशंसित हैं। यदि आप कुछ गलत करते हैं, तो आप गलती से अपनी सभी सिस्टम फ़ाइलें हटा सकते हैं।

Rmdir का उपयोग करके निर्देशिकाएँ कैसे हटाएँ

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

सबसे सरल मामला एक खाली निर्देशिका को हटाना है। rm की तरह, आप एक निर्देशिका पथ को rmdir या rmdir में एकाधिक निर्देशिका नाम पास कर सकते हैं।

वर्तमान निर्देशिका में से एक निर्देशिका को उसका नाम rmdir पर भेजकर हटाएँ:

आरएमडीआईआर निर्देशिका

नामों की सूची को rmdir में पास करके अनेक निर्देशिकाएँ हटाएँ:

Rmdir निर्देशिका1 निर्देशिका2 निर्देशिका3

उस निर्देशिका का पूरा पथ निर्दिष्ट करके उस निर्देशिका को हटाएं जो वर्तमान निर्देशिका में नहीं है:

Rmdir /पथ/से/निर्देशिका

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

जब rmdir "निर्देशिका खाली नहीं है" त्रुटि जारी करता है, तो यह कमांड लाइन पर पास की गई निर्देशिकाओं को संसाधित करना बंद कर देता है। यदि आपने चार निर्देशिकाओं को हटाने के लिए कहा है और पहली में मौजूद फ़ाइलें हैं, तो rmdir आपको एक त्रुटि संदेश देगा और कुछ नहीं करेगा। आप इसे अन्य निर्देशिकाओं को संसाधित करने के लिए --ignore-fail-on-non-empty के साथ इन त्रुटियों को अनदेखा करने के लिए बाध्य कर सकते हैं।

निम्नलिखित उदाहरण में, दो फ़ोल्डर्स को rmdir में स्थानांतरित किया गया है, वे कार्य/रिपोर्ट और कार्य/उद्धरण हैं। --ignore-fail-on-non-empty विकल्प कमांड में शामिल है। कार्य/रिपोर्ट फ़ोल्डर में फ़ाइलें हैं, इसलिए rmdir इसे हटा नहीं सकता। --ignore-fail-on-non-empty विकल्प के कारण rmdir त्रुटि को अनदेखा कर देता है और अगले फ़ोल्डर पर चला जाता है जिसे उसे संसाधित करना होता है, जो कि कार्य/उद्धरण है। यह एक खाली फ़ोल्डर है और rmdir इसे हटा देता है।

इस आदेश का प्रयोग किया गया.

आरएमडीआईआर--नॉन-रिक्त कार्य/रिपोर्ट/कार्य/उद्धरण को अनदेखा-असफल

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

निम्नलिखित उदाहरण में, rmdir को दिया गया आदेश है:

Rmdir -p कार्य/चालान

अनुरोध पर चालान और कार्य निर्देशिकाएँ हटा दी जाती हैं।

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

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

कमांड लाइन विंडोज ऑपरेटिंग सिस्टम चलाने वाले कंप्यूटर को प्रशासित करते समय उत्पन्न होने वाले कई कार्यों को स्वचालित और सरल बनाने के लिए एक शक्तिशाली उपकरण है। इस लेख में हम DEL, ERASE, RD और RMDIR कमांड देखेंगे। इनकी मदद से आप सीधे कमांड लाइन से फाइल्स और फोल्डर को डिलीट कर सकते हैं।

यदि आपको किसी फ़ाइल को के माध्यम से हटाना है, तो आपको DEL या ERASE कमांड का उपयोग करना होगा। ये आदेश पर्यायवाची हैं और समान रूप से कार्य करते हैं। यदि आप इन्हें कमांड लाइन में "/? के साथ दर्ज करते हैं तो आप इन कमांडों के बारे में विस्तृत जानकारी प्राप्त कर सकते हैं। " उदाहरण के लिए, आप "del/? टाइप कर सकते हैं " और डेल कमांड के बारे में सभी बुनियादी जानकारी कंसोल में प्रदर्शित की जाएगी।

DEL (या ERASE) कमांड को एक या अधिक फ़ाइलों को हटाने के लिए डिज़ाइन किया गया है और यह निम्नलिखित मापदंडों को स्वीकार कर सकता है:

  • /पी - प्रत्येक फ़ाइल के लिए पुष्टिकरण अनुरोध के साथ विलोपन;
  • /एफ - "रीड-ओनली" विशेषता वाली फ़ाइलें हटाना;
  • /एस - सभी सबफ़ोल्डर्स से निर्दिष्ट फ़ाइल को हटा देता है;
  • /Q - पुष्टिकरण अनुरोध के बिना हटाना;
  • /ए - फ़ाइलों को उनकी विशेषताओं के अनुसार हटाना;

    • एस - सिस्टम;
    • एच - छिपा हुआ;
    • आर - केवल पढ़ने के लिए;
    • ए - संग्रह के लिए
    • आप विशेषताओं के सामने ऋण चिह्न "-" का भी उपयोग कर सकते हैं, जिसका अर्थ "नहीं" है। उदाहरण के लिए, "-S" का अर्थ एक गैर-सिस्टम फ़ाइल है।

आमतौर पर, DEL कमांड का उपयोग करने के लिए, आपको पहले उस फ़ोल्डर में जाना होगा जहां डिलीट की जाने वाली फ़ाइल स्थित है, और फिर कमांड चलाएँ। ड्राइव को बदलने के लिए आपको बस ड्राइव अक्षर और एक कोलन दर्ज करना होगा। और फ़ोल्डरों में जाने के लिए आपको "सीडी" कमांड का उपयोग करना होगा।

एक बार जब आप वांछित फ़ोल्डर में पहुंच जाएं, तो आप फ़ाइलें हटाना शुरू कर सकते हैं। ऐसा करने के लिए, बस DEL कमांड और फ़ाइल नाम दर्ज करें।

इसके अलावा, यदि आवश्यक हो, तो आप फ़ोल्डरों में नेविगेट किए बिना फ़ाइलें हटा सकते हैं। इस स्थिति में, आपको दस्तावेज़ का पूरा पथ निर्दिष्ट करना होगा।

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

यह ध्यान दिया जाना चाहिए कि "/a" पैरामीटर का उपयोग करते समय, विशेषताओं के लिए जिम्मेदार अक्षरों को एक कोलन द्वारा अलग करके दर्ज किया जाना चाहिए। उदाहरण के लिए, "रीड-ओनली" विशेषता और "txt" एक्सटेंशन वाली सभी फ़ाइलों को हटाने के लिए, आपको "कमांड" दर्ज करना होगा डेल /एफ /ए:आर *.txt "।

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

  • डेल डी:\ - ड्राइव डी की जड़ में सभी फाइलों को नष्ट कर देता है;
  • del D:\*.txt - ड्राइव D के रूट में txt एक्सटेंशन वाली सभी फ़ाइलों का विनाश;
  • del D:\doc - d:\doc फ़ोल्डर में सभी फ़ाइलों का विनाश (विशेषताओं वाले दस्तावेज़ छोड़ दिए जाएंगे);
  • del /A:r d:\doc\*.txt - d:\doc फ़ोल्डर में "रीड-ओनली" विशेषता और "txt" एक्सटेंशन वाली सभी फ़ाइलों का विनाश;

कमांड लाइन के माध्यम से फ़ोल्डर्स हटाना

यदि आपको विंडोज़ कमांड लाइन के माध्यम से किसी फ़ोल्डर को हटाना है, तो उपरोक्त कमांड आपकी मदद नहीं करेंगे। फ़ोल्डरों को हटाने के लिए, एक अलग कमांड आरडी या आरएमडीआईआर (रिमूव डायरेक्ट्री का संक्षिप्त रूप) है।

आरडी और आरएमडीआईआर कमांड पर्यायवाची हैं और इनका उद्देश्य फ़ोल्डरों को हटाना है। वे निम्नलिखित पैरामीटर स्वीकार कर सकते हैं:

  • /एस - संपूर्ण निर्देशिका ट्री को हटा देता है; इस पैरामीटर का उपयोग करते समय, न केवल फ़ोल्डर हटा दिया जाएगा, बल्कि इसकी सभी सामग्री भी हटा दी जाएगी;
  • /Q - पुष्टिकरण मांगे बिना फ़ोल्डर ट्री को हटाना;

उदाहरण के लिए, किसी फ़ोल्डर को हटाने के लिए, बस आरडी कमांड और फ़ोल्डर का नाम दर्ज करें।

यदि किसी फ़ोल्डर में सबफ़ोल्डर या फ़ाइलें हैं, तो उसे हटाते समय एक त्रुटि प्रदर्शित होगी।"

इस समस्या को हल करने के लिए, आपको आरडी कमांड में "/s" पैरामीटर जोड़ना होगा। इस मामले में, विलोपन बिना किसी समस्या के आगे बढ़ता है, लेकिन विलोपन की पुष्टि करने का अनुरोध प्रकट होता है।

पुष्टिकरण अनुरोध प्रकट हुए बिना फ़ोल्डर ट्री को हटाने के लिए, आपको कमांड में "/q" पैरामीटर जोड़ना होगा। इस स्थिति में, फ़ोल्डर बिना कोई प्रश्न पूछे हटा दिया जाता है।

साथ ही, आरडी कमांड एक साथ कई फ़ोल्डरों को स्वीकार कर सकता है; ऐसा करने के लिए, आपको बस उन्हें एक स्थान से अलग करना होगा। उदाहरण के लिए, यदि आप "rd 111 222" निष्पादित करते हैं, तो आप एक समय में "111" और "222" नामक फ़ोल्डर हटा सकते हैं।

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

DEL और RD कमांड को मिलाकर, आप विंडोज ऑपरेटिंग सिस्टम में फ़ोल्डर्स को साफ करने और हटाने के लिए शक्तिशाली स्क्रिप्ट बना सकते हैं।

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

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

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


यदि आप स्थान निर्धारित करने में असमर्थ हैं, तो हटाते समय आपको स्वयं पूरा पथ दर्ज करना होगा, इसलिए आपको इसे जानना होगा।

विधि 1: मानक टर्मिनल आदेश

किसी भी लिनक्स वितरण के कमांड शेल में बुनियादी उपयोगिताओं और उपकरणों का एक सेट होता है जो आपको निर्देशिकाओं को हटाने सहित सिस्टम सेटिंग्स और फ़ाइलों के साथ कई प्रकार की कार्रवाइयां करने की अनुमति देता है। ऐसी कई उपयोगिताएँ हैं और प्रत्येक एक निश्चित स्थिति में सबसे उपयोगी होंगी।

rmdir कमांड

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

यदि आप अपने इच्छित स्थान पर नेविगेट नहीं कर सकते हैं या इसकी आवश्यकता नहीं है, तो आपको पूर्ण निर्देशिका पथ निर्दिष्ट करने से कोई नहीं रोक सकता है। फिर रेखा, उदाहरण के लिए, निम्नलिखित रूप लेती है: rmdir /home/user/folder/folder1 , जहां उपयोगकर्ता- उपयोगकर्ता नाम, फ़ोल्डरमूल निर्देशिका है, और फ़ोल्डर 1- हटाने के लिए फ़ोल्डर. कृपया ध्यान दें कि घर से पहले एक स्लैश होना चाहिए, लेकिन रास्ते के अंत में कोई स्लैश नहीं होना चाहिए।

आरएम कमांड

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

यदि आप rm का उपयोग करते समय सभी हटाई गई फ़ाइलों और फ़ोल्डरों की एक सूची प्रदर्शित करना चाहते हैं, तो आपको लाइन को थोड़ा संशोधित करने की आवश्यकता होगी। में प्रवेश करें "टर्मिनल" rm -Rfv फ़ोल्डर खोलें और फिर कमांड सक्रिय करें।

एक बार विलोपन पूरा हो जाने पर, सभी निर्देशिकाओं और व्यक्तिगत वस्तुओं के बारे में जानकारी जो पहले निर्दिष्ट स्थान पर स्थित थीं, प्रदर्शित की जाएंगी।

आदेश खोजें

हमारी वेबसाइट पर पहले से ही लिनक्स कर्नेल पर विकसित ऑपरेटिंग सिस्टम में खोज का उपयोग करने के उदाहरणों वाली सामग्री मौजूद है। बेशक, वहां केवल बुनियादी और सबसे उपयोगी जानकारी ही प्रस्तुत की जाती है। आप निम्नलिखित लिंक पर क्लिक करके इससे परिचित हो सकते हैं, और अब हम यह पता लगाने का प्रस्ताव करते हैं कि जब आपको निर्देशिकाओं को हटाने की आवश्यकता होती है तो यह टूल कैसे काम करता है।

  1. जैसा कि ज्ञात है, खोजोसिस्टम के भीतर वस्तुओं की खोज करने का कार्य करता है। अतिरिक्त विकल्पों के उपयोग के लिए धन्यवाद, आप एक विशिष्ट नाम वाली निर्देशिकाएं ढूंढ सकते हैं और उन्हें तुरंत हटा सकते हैं। ऐसा करने के लिए, कंसोल में ढूंढें दर्ज करें। -टाइप डी -नाम "फ़ोल्डर" -एक्सईसी आरएम -आरएफ () \;, जहां फ़ोल्डर निर्देशिका का नाम है। ऐसा करते समय दोहरे उद्धरण चिह्न अवश्य लिखें।
  2. एक अलग लाइन कभी-कभी यह जानकारी प्रदर्शित करती है कि ऐसी फ़ाइल या निर्देशिका मौजूद नहीं है, लेकिन इसका मतलब यह नहीं है कि यह नहीं मिली थी। अभी खोजोसिस्टम से निर्देशिका को हटाने के बाद फिर से काम किया।
  3. ढूंढें ~/ -खाली -प्रकार डी -डिलीट आपको सिस्टम पर सभी खाली फ़ोल्डरों को हटाने की अनुमति देता है। उनमें से कुछ केवल सुपरयूज़र के लिए ही पहुंच योग्य हैं, इसलिए पहले खोजोसूडो जोड़ा जाना चाहिए।
  4. सभी पाई गई वस्तुओं और ऑपरेशन की सफलता के बारे में डेटा स्क्रीन पर दिखाई देगा।
  5. आप टूल को खोजने और साफ़ करने के लिए केवल एक विशिष्ट निर्देशिका भी निर्दिष्ट कर सकते हैं। फिर, उदाहरण के लिए, लाइन इस तरह दिखेगी: /home/user/Folder/ -empty -type d -delete ढूंढें।

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

शुभ दिन, प्रिय पाठकों। आज मैं PHP में एक डायरेक्टरी को हटाने के बारे में बात करना चाहूँगा। ऐसा लगता है कि ऑपरेशन जटिल नहीं है, लेकिन कुछ बारीकियां हैं। आइए ऐसा करने के तरीकों पर नजर डालें।

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

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

उदाहरण कार्यान्वयन:

फ़ंक्शन recursiveRemoveDir($dir) ($includes = glob($dir."/*"); foreach ($include as $include) ( if(is_dir($include)) ( recursiveRemoveDir($include); ) else ( unlink( $शामिल); ) ) rmdir($dir); ) //वर्तमान निर्देशिका से tmp निर्देशिका हटाएं recursiveRemoveDir('tmp');
इस कोड में क्या समस्याएँ हैं?

साधारण मामलों में, सभी अनुलग्नकों वाली निर्देशिका हटा दी जाएगी। लेकिन मान लीजिए कि हमारी निर्देशिका में एक छिपी हुई फ़ाइल है जो एक बिंदु से शुरू होती है, उदाहरण के लिए, .htaccess. समारोह ग्लोब()एक UNIX ग्लोब प्रतिस्थापन है जिसमें डिफ़ॉल्ट रूप से छिपी हुई फ़ाइलें (DOTFILES) शामिल नहीं हैं। उदाहरण के लिए, यदि हम निक्स टर्मिनल पर जाते हैं और बैश का उपयोग करते हैं, तो हमें उसी समस्या का सामना करना पड़ेगा (हम ग्लब्स के भीतर छिपी हुई फ़ाइलों के बारे में बात कर रहे हैं)। इस समस्या को हल करने के लिए बैश में एक कमांड है: शॉपटी-एस डॉटग्लोब- यह छिपी हुई फ़ाइलों के ग्लोब प्रतिस्थापन की अनुमति देता है। PHP में, इसे एक अतिरिक्त पैरामीटर जोड़कर हल किया जा सकता है GLOB_BRACEके लिए ग्लोब()और फ़ंक्शन के पहले पैरामीटर से पैटर्न का विस्तार करना।

$शामिल हैं = ग्लोब('tmp/(,.)*', GLOB_BRACE);
और यहां एक समस्या भी है - हम एक अनंत लूप का सामना करेंगे, क्योंकि सरणी में मान शामिल होंगे। और.. - जो सिस्टम स्तर पर वर्तमान और मूल निर्देशिका है। हम एक अनंत लूप के साथ समाप्त हो जाएंगे (और सभी मूल निर्देशिकाओं को नहीं हटाएंगे) क्योंकि। डिफ़ॉल्ट सॉर्टिंग के भाग के रूप में, जेनरेट किया गया ऐरे पहले आएगा.. - यानी, हर बार हम उसी डायरेक्टरी तक पहुंचेंगे। समस्या को हल करने के लिए, हम इन सिस्टम निर्देशिकाओं से एक सरणी बनाएंगे और, एक लूप में, उनके सूचकांकों को मुख्य सरणी से हटा देंगे। प्रतीकात्मक कड़ियों की भी समस्या है. मान लीजिए कि हटाई जा रही निर्देशिका में किसी अन्य निर्देशिका का लिंक है, जिसकी सामग्री को हटाने में हमें कोई दिलचस्पी नहीं है। समस्या को हल करने के लिए, रिकर्सन बनाने से पहले, यह जांचना आवश्यक है कि इकाई एक संदर्भ नहीं है।

परिणामस्वरूप, फ़ंक्शन निम्नलिखित रूप लेता है:

फ़ंक्शन recursiveRemoveDir($dir) ($includes = glob($dir."/(,.)*", GLOB_BRACE); $systemDots = preg_grep("/\.+$/", $includes); foreach ($systemDots as $index => $dot) ( unset($includes[$index]); ) foreach ($include as $include) ( if(is_dir($include) && !is_link($include)) ( recursiveRemoveDir($include); ) अन्यथा (अनलिंक($शामिल); ) ) rmdir($dir); ) //वर्तमान निर्देशिका से tmp निर्देशिका को हटाएं recursiveRemoveDir("tmp");
कोड काम कर रहा है, लेकिन वास्तव में इसे सरल बनाया जा सकता था। PHP में एक क्लास FilesystemIterator है, जिसमें डिफ़ॉल्ट रूप से हमारे लिए आवश्यक सेटिंग्स पहले से ही मौजूद हैं। जिस निर्देशिका की सूची की हमें आवश्यकता है उसका पथ कंस्ट्रक्टर को भेज दिया जाता है। हमें बस एक ऑब्जेक्ट बनाने की जरूरत है।

फ़ंक्शन recursiveRemoveDir($dir) ($includes = new FilesystemIterator($dir); foreach ($include as $include) ( if(is_dir($include) && !is_link($include)) ( recursiveRemoveDir($include); ) अन्यथा (अनलिंक($शामिल); ) ) rmdir($dir); ) //वर्तमान निर्देशिका से tmp निर्देशिका को हटाएं recursiveRemoveDir("tmp");
अंत में, मैं एक और त्वरित तरीका नोट करना चाहूंगा। इसके उपयोग की शुद्धता बहुत संदिग्ध है - निष्पादन के लिए आदेश शेल को भेजें।

सिस्टम ("आरएम-आरएफ टीएमपी");
मैं आपका ध्यान उच्च मेमोरी खपत और इस तथ्य की ओर आकर्षित करना चाहूंगा कि प्रशासक अक्सर सुरक्षा कारणों से सर्वर पर ऐसे कार्यों के उपयोग पर रोक लगाते हैं।

टैग: php, rmdir, ग्लोब, रिकर्सन

टीम rmdirहमें एक खाली निर्देशिका, यानी फ़ाइलों और फ़ोल्डरों के बिना एक निर्देशिका को हटाने में मदद मिलेगी। कमांड सिंटैक्स बहुत सरल है:

Rmdir DIRNAME

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

$ rmdir परीक्षण rmdir: `परीक्षण" को हटाने में विफल: निर्देशिका खाली नहीं है

2. लिनक्स में नेस्टेड निर्देशिकाओं को कैसे हटाएं?

विकल्प का उपयोग करना -पीआप एक निर्देशिका को हटा सकते हैं जिसके अंदर एक उपनिर्देशिका निहित है।

$ rmdir -p dir1/dir2/dir3

टीम rmdir -p dir1/dir2/dir3यह कमांड के समतुल्य है

$ rmdir dir1/dir2/dir3 dir1/dir2 dir1

3. सामग्री निर्देशिका को हटाना

यदि आपको सामग्री वाली किसी निर्देशिका को हटाने की आवश्यकता है, तो आप कमांड का उपयोग कर सकते हैं आर एम:

$ आरएम-आरएफ DIRNAME

यह आदेश एक निर्देशिका को हटा देगा, जिसमें उसमें मौजूद सभी फ़ाइलें और उपनिर्देशिकाएँ भी शामिल होंगी। इस आदेश का उपयोग सावधानी से करें, क्योंकि हटाई गई फ़ाइलों को पुनर्प्राप्त करना आसान प्रक्रिया नहीं होगी।

4. इंटरएक्टिव निष्कासन

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

पुनरावर्ती और इंटरैक्टिव निर्देशिका विलोपन.

# rm -ir DIRNAME

इंटरैक्टिव फ़ाइल हटाना.

# आरएम -आई फ़ाइलनाम

5. आरएम और आरएमडीआईआर कमांड के लिए उपयोगी उपनाम

आप आरएम कमांड के डिफ़ॉल्ट व्यवहार के रूप में इंटरैक्टिव डिलीट का उपयोग कर सकते हैं।

लगातार आरएम को अंतःक्रियात्मक रूप से निष्पादित करने के लिए उपनाम

# उपनाम आरएम = "आरएम -आई"

कमांड का उपयोग करते समय आर एमआदेश वास्तव में निष्पादित किया जाएगा आरएम -आई. लेकिन आपको एक बारीकियों पर ध्यान देने की जरूरत है। भविष्य में -i विकल्प का उपयोग न करें क्योंकि आपको वांछित प्रभाव नहीं मिलेगा। आइए एक उदाहरण देखें:

निम्नलिखित कमांड में, -i का उपयोग करने से आपको अपेक्षित प्रभाव नहीं मिलेगा..

$ आरएम-आईआरएफ DIRNAME

इस मामले में, उपनाम का उपयोग करते समय, उपरोक्त कमांड को निम्नानुसार चलाया जाना चाहिए:

$ आरएम-आरएफ DIRNAME

नीचे दिए गए सभी आदेश समतुल्य हैं और समान कार्यक्षमता निष्पादित करते हैं।

  • आरएम-एफआर
  • आरएम-आरएफ
  • आरएम -आर -एफ
  • आरएम -एफ -आर

यदि आपको किसी भवन के विशेषज्ञ मूल्यांकन की आवश्यकता है, तो मैं टेक्नोप्लास्ट अनुसंधान और उत्पादन केंद्र के विशेषज्ञों द्वारा तैयार भवनों के निरीक्षण का आदेश देने की सलाह देता हूं।