आपकी मैकबुक जैसी मशीन के लिए आपको दो कमांडों के बीच प्रदर्शन में ज्यादा अंतर नहीं मिलेगा। हालाँकि, यदि आप -exec संस्करण को देखते हैं तो आप एक सूक्ष्म अंतर देख सकते हैं:
sudo find / -iname ".file-to-delete" -exec rm {} \;
इसका मतलब है कि आप उन सभी फाइलों को ".file-to-delete" नाम से पाएंगे। हालाँकि यह खोज कुछ अवांछित झूठी सकारात्मक लौटा सकती है। सुडो के साथ कुछ करते समय आपको थोड़ा अधिक सावधान रहना चाहिए। -Exec rm {} का उपयोग करने का लाभ यह है कि आप rm को इस तरह से तर्क पारित कर सकते हैं:
sudo find / -iname "*~" -exec rm -i {} \;
इस उदाहरण में मैं उन बैकअप फ़ाइलों को हटाना चाहता हूं जो एमएसीएस बनाती है। हालाँकि वह टिल्ड कुछ अस्पष्ट फ़ाइल में हो सकता है जिसके बारे में मुझे जानकारी नहीं है और वह महत्वपूर्ण हो सकती है। साथ ही मैं डिलीट की पुष्टि करना चाहता हूं। इसलिए मैंने rm कमांड पर '-i' विकल्प रखा। यह मुझे एक इंटरैक्टिव डिलीट देगा।
इसके अलावा आप निर्देशिकाओं के साथ ही फाइलों को हटाने के लिए rm के उपयोग को परिष्कृत कर सकते हैं:
find /usr/local/share/ -iname "useless" -exec rm -r {} \;
संक्षेप में, -exec आपको वास्तविक कमांड पर थोड़ा अधिक नियंत्रण देता है जो मिली हुई वस्तु को हटा देता है। लाभ यह है कि आप फ़ाइलों को खोजने के लिए एक उपकरण का उपयोग करते हैं, उन्हें हटाने के लिए एक और उपकरण। खोज उपयोगिता के प्रत्येक संस्करण में -delete विकल्प भी नहीं है। इसलिए बेहतर है कि प्रत्येक उपकरण को उसके उचित काम के लिए इस्तेमाल किया जाए। यह यूनिक्स दर्शन है - एक उपकरण, एक काम, उन्हें एक साथ उपयोग करने के लिए जो आपको करने की आवश्यकता है।
-delete
पहले स्विच का उपयोग करना-name
, इसलिए मुझे लगता है कि मुझे सावधान रहना होगा।