ऐसी बहुत सी परिस्थितियाँ हैं जहाँ एक का उपयोग *वास्तव में अपरिहार्य है - उदाहरण rm -rf *के लिए एक फ़ोल्डर में जो हजारों सबफ़ोल्डर्स और फ़ाइलों को रखता है।
लेकिन क्या होगा अगर आप rmकमांड से सिर्फ एक या दो फाइल या फ़ोल्डर्स को बाहर करना चाहते हैं ? मैंने अपना रास्ता इधर-उधर कर लिया है और केवल काफी जटिल समाधान ढूंढे हैं जैसे find . -depth -not \( -name 'one' -o -name 'two' \
-o -name 'three' \) -exec rm {} \;कि यहाँ बताया गया है ।
क्या यह एक आसान तरीके से करने की संभावना है - बिना इस चक्कर के find? जैसे rm -rf --exclude='one' --exclude='two' --exclude='three' *rsync में या बस rm -rf -e 'one','two','three' *?
हो सकता है कि यहां तक कि एक सामान्य संभावना से बातें बाहर करने के लिए *(ताकि अन्य आदेशों की तरह cp, mv... अपने स्वयं के लागू करने के लिए नहीं है)? कुछ ऐसा है *{'one','two','three'}या ऐसा है?
mv -t /tmp one two three && rm -rf * && mv -t . /tmp/one /tmp/two /tmp/three, लेकिन मैं एक ऐसा समाधान देना पसंद करूंगा, जिसमें किसी चीज को आसानी से बाहर निकालने की संभावना हो *। निश्चित रूप से ऐसी स्थितियां होंगी जहां फ़ाइलों को किसी अन्य गंतव्य पर ले जाना या कॉपी करना एक विकल्प नहीं होगा।
findसाथ उपयोग करूंगा--delete(rmप्रत्येक फ़ाइल के लिए निष्पादित करने की आवश्यकता नहीं है । यह अनावश्यक ओवरहेड है)।