find पूरे पेड़ पर चुनिंदा कार्य करने के लिए बहुत उपयोगी है।
find . -type f -name ".Apple*" -delete
यहां, -type fयह सुनिश्चित करता है कि यह एक फ़ाइल है, निर्देशिका नहीं है, और यह बिल्कुल वैसा नहीं हो सकता है जैसा आप चाहते हैं, क्योंकि यह सिमिलिंक, सॉकेट और अन्य चीजों को भी छोड़ देगा। आप उपयोग कर सकते हैं ! -type d, जिसका शाब्दिक अर्थ निर्देशिका नहीं है, लेकिन फिर आप वर्ण और ब्लॉक डिवाइस भी हटा सकते हैं। मेरा सुझाव है -typeकि मैन पेज के लिए विधेय को देखें find।
वाइल्डकार्ड के साथ इसे कड़ाई से करने के लिए, आपको उन्नत शेल समर्थन की आवश्यकता है। बैश v4 के पास globstarविकल्प है , जो आपको पुन: उपयोग करके उपनिर्देशिका से मिलान करने देता है **। zshऔर kshइस पैटर्न का समर्थन भी करते हैं। इसका उपयोग करके, आप कर सकते हैं rm -rf **/.Apple*। यह POSIX- मानक नहीं है, और बहुत पोर्टेबल नहीं है, इसलिए मैं इसे एक स्क्रिप्ट में उपयोग करने से बचूंगा, लेकिन एक बार की इंटरैक्टिव शेल कार्रवाई के लिए, यह ठीक है।
find . -type d -name .Apple*काम मिल सकता है - यह सभी फ़ोल्डरों को सूचीबद्ध करता है। हालाँकि, यह तब विफल होता है जब मैं-deleteअंत में जोड़ता हूं । यह सिर्फ उपयोग सारांश के साथ वापस आता है। यह बिजीबॉक्स v1.1.1 पर चल रहा है। क्या इससे कुछ अन्तर पड़ता है?