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


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.