Centos में डायरेक्टरी की सामग्री को कैसे हटाएं


9

मुझे CentOS में फ़ोल्डर की सभी सामग्री को हटाने की आवश्यकता है, लेकिन फ़ोल्डर की नहीं।

उदाहरण के लिए: मेरे पास "MYFOLDER" नाम का एक फ़ोल्डर है जिसमें सबफ़ोल्डर्स FOLD_1, FOLD_2, FOLD_3, FOLD_4 ... आदि, और कुछ फ़ाइलें हैं। मुझे इन सभी फ़ोल्डरों और फ़ाइलों को हटाने की आवश्यकता है लेकिन कंटेनर फ़ोल्डर MYFOLDER की नहीं। मुझे पिछली प्रक्रिया के परिणामों को निर्देशित करने के लिए इस निर्देशिका की आवश्यकता है।

मैंने rm -rf कमांड के साथ कोशिश की , लेकिन यह कंटेनर फ़ोल्डर को भी हटा देता है।

जवाबों:


11

इसके बजाय फ़ोल्डर की सामग्री को हटा दें।

rm -r MYFOLDER/*

1
ध्यान दें कि यह MYFOLDER
tylerl

1
@tylerl: यदि आप shopt -s dotglobपहले सेट करते हैं तो यह करता है ।
jgoldschrafe

इसके लिए आपको प्रत्येक उपनिर्देशिका में मैन्युअल रूप से y / n उतरने की आवश्यकता है, जो समय की पूरी बर्बादी है। सही कमांड सभी को स्वचालित रूप से संभाल लेगा ताकि आप 50 संकेतों के साथ अटक न जाएं।
कोडमेड

rm -R /path/to/myfolder/*हर फ़ाइल और सबफ़ोल्डर को हटाने के लिए अत्यधिक अनुरोधों से बचने के लिए सही वाक्यविन्यास है। राजधानी पर ध्यान दें R
कोडमेड

5

आप उपयोग कर सकते हैं:

rm -r MYFOLDER/{.[^.],.??*}

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

ls MYFOLDER/{.[^.],.??*}|xargs rm -r

मेरे पास मेरी meta/निर्देशिका के अंदर 500k से अधिक फाइलें हैं , इसलिए मैं xargs वैकल्पिक कोशिश करना चाहता था, हालाँकि मुझे ये त्रुटि संदेश मिले: ls: cannot access meta/.[^.]: No such file or directory ls: cannot access meta/.??*: No such file or directory rm: missing operand
Andres SK

1
सुनिश्चित करें कि आप bashशेल का उपयोग कर रहे हैं । फ़ाइल पैटर्न के लिए शेल को "ब्रेस एक्सपेंशन" और "रेगुलर एक्सप्रेशंस" का समर्थन करना चाहिए।
Mircea Vutcovici

3

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

rm -rf foldername
mkdir foldername

उफ़। आपने निर्दिष्ट किया (मैंने आपके पोस्ट को पुनः प्रकाशित किया)। ठीक है, फिर भी, हटाने और पुन: काम कर सकता है। खासकर अगर आप एक साथ चेन कमांड करते हैं, जैसे

rm -rf foldername && mkdir foldername

या

rm -rf foldername; mkdir foldername

कभी-कभी आपके पास मूल फ़ोल्डर में अनुमति नहीं होती है या आप कुछ विशेषताओं को संरक्षित करना चाहते हैं जिनसे आप अनजान हैं। उदाहरण के लिए, आप अपने होम फोल्डर को नॉन रूट यूजर के रूप में नहीं हटा सकते हैं, लेकिन आप इसके तहत कुछ भी हटा सकते हैं।
Mircea Vutcovici

यह स्वीकृत उत्तर होना चाहिए। +1
कोडमेक्टेड



0

मैं इस विकल्प की दृढ़ता से अनुशंसा करता हूं (यह नामों में रिक्त स्थान वाली फ़ाइलों को भी हटाता है):

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