सभी .svn फ़ोल्डरों को पुनरावर्ती रूप से हटाने के लिए टर्मिनल का उपयोग कैसे करें?


55

मैं किस कमांड को टर्मिनल में टाइप कर सकता हूं ताकि मैं .svnएक फोल्डर के भीतर सभी फोल्डर को डिलीट कर सकूं (और सभी सबडायरेक्टरीज से) लेकिन कुछ और डिलीट न करूं?


हो सकता है कि आप svn export path/to/repo path/to/export/toइसके बजाय ...
जॉनी

एक नोट svn exportयह है कि उन फ़ाइलों की प्रतिलिपि नहीं है जो svn का हिस्सा नहीं हैं। उदाहरण के लिए, मैं इसे एक iOS एप्लिकेशन के लिए करना चाहता था जो कोको पॉड्स का उपयोग करता है जहां हम पॉड्स फ़ोल्डर नहीं करते हैं। यह तब आउटपुट से छोड़ दिया गया था। मैंने जो कुछ भी चाहा उसके लिए रिच के जवाब के समान कुछ का उपयोग करके समाप्त हुआ।
jackofallcode

जवाबों:


119
cd to/dir/where/you/want/to/start
find . -type d -name '.svn' -print -exec rm -rf {} \;
  • खोज का उपयोग करें, जो पुनरावृत्ति करता है
  • वर्तमान निर्देशिका में।
  • filetype निर्देशिका है
  • फ़ाइल नाम .svn है
  • प्रिंट करें जो इस बिंदु तक मेल खाता है (.svn dirs)
  • कमांड को निष्पादित करें rm -rf (thing found from find)। {} पाया इकाई के लिए एक प्लेसहोल्डर है
  • ; बताता है कि निष्पादन के लिए कमांड किया जाता है। चूँकि शेल का भी अंदाजा है कि क्या; इसलिए, आपको इसे \ _ से बचकर भागने की आवश्यकता है ताकि शेल इसके साथ कुछ विशेष न कर पाए, और बस खोजने के लिए गुजरता है

2
अच्छा समाधान। जबकि findहै -deleteयह गैर खाली निर्देशिका नहीं हटेगा। यह दृष्टिकोण फाइलों के पूरे रास्ते के हिस्सों से मेल खाने के लिए शुरू करने की तुलना में क्लीनर है।
डैनियल बेक

13
मैं -exec rm -rf {} \;पहली बार बिना इसे चलाने की सलाह दूंगा यह सुनिश्चित करने के लिए कि यह केवल वही है जो आप इसे चाहते हैं। मेरे पास कभी ऐसा मुद्दा नहीं था जहां मैंने गलती से इसके साथ गलत काम को हटा दिया हो, क्योंकि मैं हमेशा पहले जांच करता हूं।
रोब

2
@ अच्छा बिंदु, मैं आम तौर पर करते हैं -Echo rm -rf {} \; फिर प्रतिध्वनि को हटा दें।
रिच होमोलका

एक अन्य विकल्प है, तो वहाँ भी कई के साथ एक फ़ाइल को मिटाने की पुष्टि के लिए होगा नहीं कर रहे हैं-exec rm -ri {} \;
doovers

4
-exec rm -rf {} +यह शायद कई बार उपवास के रूप में है, क्योंकि इसे बहुत सारे rmउदाहरण लॉन्च करने की आवश्यकता नहीं है । इसके बजाय, यह एक कॉल में अधिकतम राशि के तर्क (निर्देशिका को इस मामले में निकालने के लिए) को पैक करता है। यह संभव है क्योंकि rmकई तर्कों को स्वीकार करता है।
डेनियल बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.