यूनिक्स के साथ दिए गए मार्ग में सभी निर्देशिकाओं को हटाना


1

मेरे पास एक निर्देशिका है जिसमें बहुत सारी फाइलें और बहुत सारी खाली निर्देशिकाएं हैं। मैं फाइलें रखना चाहता हूं लेकिन निर्देशिकाओं को हटा देता हूं । मैं इसका उपयोग करके rmऔर अन्य मानक यूनिक्स उपकरण कैसे प्राप्त कर सकता हूं ?

जवाबों:


3

रेखाओं के साथ कुछ:

find . -type d -empty -delete

मेरा मानना ​​है कि -deleteयह एक GNUism है, जिसमें आपको क्या करना है:

find . -type d -empty -print0 | xargs -0 rm

यह "अजीब" वर्णों के साथ फ़ाइल नामों के मामले को संभालता है (लेकिन ऐसा लगता है -print0और -0फिर से GNU एक्सटेंशन हैं)।


1
अगर-कोई काम नहीं करता है, तो "ढूंढें -टाइप करें -empty -exec rmdir {} \" का उपयोग करें; ({} के पीछे के स्थान को न भूलें, यह महत्वपूर्ण है)।
19

आप एक स्पष्ट आवश्यकता हो सकती है -depthके साथ findइतना है कि गहरी निर्देशिका पहले निकाल दिए जाते हैं,, मंगलाचरण के आधार पर। -deleteस्वचालित रूप से उपयोग करता है -depth, " find ... -print0 | xargs" संस्करण नहीं करता है, और फ़ाइल-कम निर्देशिका पदानुक्रम को अनिर्धारित छोड़ देगा।
mr.spuratic
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.