मैं लिनक्स के तहत अपने सभी उपनिर्देशिकाओं में सभी .swp फाइलें कैसे निकाल सकता हूं?
मैं लिनक्स के तहत अपने सभी उपनिर्देशिकाओं में सभी .swp फाइलें कैसे निकाल सकता हूं?
जवाबों:
वर्तमान निर्देशिका के नीचे सभी * .swp फाइलें निकालें, findनिम्न में से किसी एक रूप में कमांड का उपयोग करें :
find . -name \*.swp -type f -delete
-deleteविकल्प सीधे मिलान फ़ाइलों को हटाने मिल का मतलब है। यह ओपी के वास्तविक प्रश्न का सबसे अच्छा मेल है।
साधनों
का उपयोग करके -type fकेवल फाइलों को प्रोसेस करना होगा।
find . -name \*.swp -type f -exec rm -f {} \;
find . -name \*.swp -type f -exec rm -f {} +
विकल्प -execप्रति फ़ाइल एक मनमाना कमांड निष्पादित करने की अनुमति देता है। पहला संस्करण फ़ाइल के अनुसार एक बार कमांड चलाएगा, और दूसरा संभव {}के रूप में कई मापदंडों के साथ प्रतिस्थापित करके संभव के रूप में कुछ कमांड चलाएगा ।
find . -name \*.swp -type f -print0 | xargs -0 rm -f
आउटपुट को पाइपिंग के xargsरूप में अधिक जटिल प्रति फ़ाइल कमांड के रूप में उपयोग किया जाता है -exec। विकल्प -print0बताता findASCII शून्य के बजाय एक नई पंक्ति के साथ मैच को अलग करने, और -0कहता है xargsशून्य से अलग किए इनपुट अपेक्षा करनी चाहिए। यह व्हाईटस्पेस युक्त फाइलनाम के लिए पाइप निर्माण को सुरक्षित बनाता है।
man findअधिक विवरण और उदाहरणों के लिए देखें ।
मेरी गृह निर्देशिका के अंतर्गत खोज के लिए (और GNU 'खोज' और 'xargs' का उपयोग करके), मैं उपयोग करूँगा:
find $HOME -name '*.swp' -print0 | xargs -0 rm -f
' -print0' और ' -0' का प्रयोग का अर्थ है कि नाम ASCII NUL '\ 0' वर्णों द्वारा सीमांकित किए जाएंगे, और यह नामों में रिक्त स्थान आदि के साथ फ़ाइल पथ को संभालेंगे। यदि आपको लगता है कि आपके पास '.swp' के साथ समाप्त होने वाली निर्देशिका के अंतर्गत निर्देशिका (या डिवाइस फ़ाइलें, या FIFOs, या अन्य गैर-फ़ाइलें) हो सकती हैं, तो आप 'खोज -type f' विकल्प को जोड़ सकते हैं । यदि आपके पास केवल निर्देशिकाएं हैं, तो ऊपर दिया गया आदेश उन्हें हटाने में विफल रहेगा।