ऐसी बहुत सी परिस्थितियाँ हैं जहाँ एक का उपयोग *
वास्तव में अपरिहार्य है - उदाहरण 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
प्रत्येक फ़ाइल के लिए निष्पादित करने की आवश्यकता नहीं है । यह अनावश्यक ओवरहेड है)।