2017-03-16 11 views
5

जब मैं करनिकाला जा रहा है फ़ाइलें और xargs

rm file.txt 

या

rm *.txt 

मैं प्रत्येक फ़ाइल के लिए संकेत कर रहा हूँ, क्योंकि मैं rm को -f विकल्प निर्दिष्ट नहीं किया।

लेकिन जब मैं यह कर:

find . -type f -name '*.txt' | xargs rm 

फ़ाइलों की पुष्टि के बिना निकाल दिए जाते हैं।

इसके पीछे तर्क क्या है? क्या कुछ दस्तावेज में कारण खोजना संभव है? मैं समझा नहीं सकता कि यह मामला क्यों होगा।

+2

व्यवहार आपके द्वारा बताई गई 'rm मैं' का है। क्या आपके पास आरएम कमांड के लिए शेल में एक उपनाम सेट है? क्या 'उर्फ आरएम' कोई आउटपुट देता है? – Harald

+0

'उर्फ rm' उत्पादन' rm -i' देता है, इतना है कि यह बताते हैं। धन्यवाद – Martin

उत्तर

5

आप rm मैं 'के लिए rm कमांड के लिए उपनाम सेट है। इसलिए यदि आप

rm file.txt 

या

rm *.txt 

में के रूप में सीधे कमांड उर्फ ​​विस्तार किया जाएगा। आप के रूप में

find . -type f -name '*.txt' | xargs rm 

में rm xargs के लिए एक सरल स्ट्रिंग तर्क के रूप में पारित हो जाता है और बाद में खोल के उर्फ ​​प्रतिस्थापन के बिना xargs से शुरू हो जाती है xargs से कॉल करने की होगी। आप उर्फ ​​शायद ~/.bashrc में परिभाषित किया गया है, के मामले में आप इसे निकालना चाहते हैं।

संबंधित मुद्दे