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